public static string ToCredentialString(this ICredentials credentials, Uri uri, string authType) { if (credentials is null) { throw new ArgumentNullException(nameof(credentials)); } NetworkCredential NetworkCredential = credentials?.GetCredential(uri, authType); if (NetworkCredential is null) { return(string.Empty); } return(NetworkCredential.ToCredentialString()); }
public static string GetProxyString(this IWebProxy proxy, Uri destination) { if (proxy is null) { throw new ArgumentNullException(nameof(proxy)); } if (destination is null) { throw new ArgumentNullException(nameof(destination)); } Uri proxyUri = proxy.GetProxy(destination); NetworkCredential credentials = proxy.Credentials?.GetCredential(destination, string.Empty); // If this URI is not proxied, return an empty string. if (proxyUri.Equals(destination)) { return(string.Empty); } StringBuilder sb = new StringBuilder(); sb.Append(proxyUri.GetLeftPart(UriPartial.Scheme)); if (!(credentials is null)) { sb.Append(credentials.ToCredentialString()); sb.Append("@"); } sb.Append(proxyUri.Host); sb.Append(string.Format(":{0}", proxyUri.Port < 0 ? 1080 : proxyUri.Port)); return(sb.ToString()); }
public void TestToCredentialStringWithUsernameAndPassword() { NetworkCredential credential = new NetworkCredential("username", "password"); Assert.AreEqual("username:password", credential.ToCredentialString()); }
public void TestToCredentialStringWithUsernameAndPasswordWithReservedCharacters() { NetworkCredential credential = new NetworkCredential("user:name", "pass:word"); Assert.AreEqual("user%3Aname:pass%3Aword", credential.ToCredentialString()); }
public void TestToCredentialStringWithUsernameAndPasswordAndDomainAndAuthType() { NetworkCredential credential = new NetworkCredential("username", "password", "example.com"); Assert.AreEqual("username:password", credential.ToCredentialString(new System.Uri("http://example.com"), "Basic")); }