如何从C#中的URL解析用户凭据

本文关键字:用户 URL 中的 | 更新日期: 2023-09-27 18:25:23

我有一个格式为的链接

http://user:pass@example.com

如何从该URL获取userpass

如何从C#中的URL解析用户凭据

Uri类具有UserInfo属性。

Uri uriAddress = new Uri ("http://user:password@www.contoso.com/index.htm ");
Console.WriteLine(uriAddress.UserInfo);

此属性返回的值通常采用"userName:password"格式。

http://msdn.microsoft.com/en-us/library/system.uri.userinfo.aspx

我对此做了进一步的研究,并为拆分用户名和密码编写了一些URI扩展想分享我的解决方案。

public static class UriExtensions
{
    public static string GetUsername(this Uri uri)
    {
        if (uri == null || string.IsNullOrWhiteSpace(uri.UserInfo))
            return string.Empty;
        var items = uri.UserInfo.Split(new[] { ':' });
        return items.Length > 0 ? items[0] : string.Empty;
    }
    public static string GetPassword(this Uri uri)
    {
        if (uri == null || string.IsNullOrWhiteSpace(uri.UserInfo))
            return string.Empty;
        var items = uri.UserInfo.Split(new[] { ':' });
        return items.Length > 1 ? items[1] : string.Empty;
    }
}