C# System.Net.CredentialCache和HttpWebResponse
我正在尝试编写一些功能,用户可以使用自己的Windows凭据或指定一些用户、密码和域登录到远程服务器 为了知道如何做,我阅读了这个链接[1] 我已经能够通过C# System.Net.CredentialCache和HttpWebResponse,c#,.net,windows,credentials,httpwebresponse,C#,.net,Windows,Credentials,Httpwebresponse,我正在尝试编写一些功能,用户可以使用自己的Windows凭据或指定一些用户、密码和域登录到远程服务器 为了知道如何做,我阅读了这个链接[1] 我已经能够通过CredentialCache.DefaultCredentials成功登录 然而,每当我试图通过用户、名称、密码和域进行身份验证时,我总是会收到一个401错误 在谷歌搜索和搜索之后,我发现了一些可能的错误(重定向,不同的身份验证类型{basic,digest,ntlm,协商),甚至相反的情况[即可以通过用户+pasword登录,但不能通过C
CredentialCache.DefaultCredentials
成功登录
然而,每当我试图通过用户、名称、密码和域进行身份验证时,我总是会收到一个401错误
在谷歌搜索和搜索之后,我发现了一些可能的错误(重定向,不同的身份验证类型{basic
,digest
,ntlm
,协商
),甚至相反的情况[即可以通过用户+pasword登录,但不能通过CredentialCache.DefaultCredentials
])
有什么提示吗
编辑:也许一些代码会给你一些关于我做错了什么的线索
static void Main(string[] args)
{
string password = "password", username = "Username", dom = "DOMAIN";
string url = "http://my.url.com/LoginWithNativeCredentials?";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
/////// Different User code////
NetworkCredential credentials = new NetworkCredential(username, password, dom);
CredentialCache cache = new CredentialCache();
cache.Add(new Uri(url), "NTLM", credentials);
request.Credentials = cache;
/////////////////////////
////// Current Windows user's credential
//request.Credentials = CredentialCache.DefaultCredentials;
/////////////////////////
request.AllowAutoRedirect = true;
request.CookieContainer = new CookieContainer(5);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Console.WriteLine("In!");
}
Console.WriteLine("Done!");
Console.ReadLine();
}
非常感谢
[1] 远程web应用程序的身份验证设置是什么?