Как отделить учетные данные пользователя от URL в C #? - PullRequest
12 голосов
/ 22 февраля 2012

У меня есть ссылка в каком-либо формате:

http://user:pass@example.com

Как получить пользователя и перейти с этого URL?

Ответы [ 2 ]

20 голосов
/ 22 февраля 2012

Класс Uri имеет атрибут UserInfo.

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

Значение, возвращаемое этим свойством, обычно имеет формат «имя пользователя: пароль».

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

6 голосов
/ 15 марта 2013

Я взял это немного дальше и написал несколько расширений 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...