diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-07-21 13:23:39 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-07-21 13:23:39 -0400 |
| commit | 6cebecb88c382a0f3174f58be6d660cbdfee6b65 (patch) | |
| tree | 040eeb13bfaa50ff0a00a2a35af818a1be2b7c66 /MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs | |
| parent | 1de6ce2a2bf77dd4d3e2be7d79d54e42d1e80777 (diff) | |
parse usernames and passwords from urls
Diffstat (limited to 'MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs')
| -rw-r--r-- | MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs index 2b7cc10aa..371757f6c 100644 --- a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs +++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs @@ -140,7 +140,17 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager private WebRequest GetRequest(HttpRequestOptions options, string method) { - var request = CreateWebRequest(options.Url); + var url = options.Url; + + var uriAddress = new Uri(url); + var userInfo = uriAddress.UserInfo; + if (!string.IsNullOrWhiteSpace(userInfo)) + { + _logger.Info("Found userInfo in url: {0} ... url: {1}", userInfo, url); + url = url.Replace(userInfo + "@", string.Empty); + } + + var request = CreateWebRequest(url); var httpWebRequest = request as HttpWebRequest; if (httpWebRequest != null) @@ -183,9 +193,27 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager } } + if (!string.IsNullOrWhiteSpace(userInfo)) + { + var parts = userInfo.Split(':'); + if (parts.Length == 2) + { + request.Credentials = GetCredential(url, parts[0], parts[1]); + request.PreAuthenticate = true; + } + } + return request; } + private CredentialCache GetCredential(string url, string username, string password) + { + //ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; + CredentialCache credentialCache = new CredentialCache(); + credentialCache.Add(new Uri(url), "Basic", new NetworkCredential(username, password)); + return credentialCache; + } + private void AddRequestHeaders(HttpWebRequest request, HttpRequestOptions options) { foreach (var header in options.RequestHeaders.ToList()) |
