我有一个链接,格式如下:
http://user:pass@example.com
如何从这个URL中获取user
和pass
?
我有一个链接,格式如下:
http://user:pass@example.com
如何从这个URL中获取user
和pass
?
Uri类具有UserInfo属性。
Uri uriAddress = new Uri ("http://user:password@www.contoso.com/index.htm ");
Console.WriteLine(uriAddress.UserInfo);
该属性返回的值通常采用 "用户名:密码" 的格式。
http://msdn.microsoft.com/zh-cn/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;
}
}