【发布时间】:2012-08-13 08:05:06
【问题描述】:
我有一个 Intranet 站点,它从另一个服务器(也在 Intranet 上)调用 POST 方法。
如果我在 IIS 中将身份验证模式设置为基本身份验证,我可以使用以下内容:
HttpWebRequest oReq = (HttpWebRequest)WebRequest.Create(sURL);
oReq.ContentType = "application/x-www-form-urlencoded";
oReq.Method = "POST";
oReq.Timeout = 60000;
...
oReq.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
...
try
{
HttpWebResponse oResp = (HttpWebResponse)oReq.GetResponse();
...
}
上述所有工作都按预期工作。
但是我需要在 IIS 中将安全性更改为 Windows 身份验证,一旦我这样做了,我就会在此行上不断收到错误 401:
try
{
HttpWebResponse oResp = (HttpWebResponse)oReq.GetResponse();
...
}
这可以通过像这样更改凭据来解决:
NetworkCredential creds = new NetworkCredential("username","password","domain");
oReq.Credentials = creds;
但这无论如何都不是正确的方法。如何获取默认凭据以也适用于 Windows 身份验证?
【问题讨论】:
-
您使用哪些浏览器进行测试?该资源可能会为您指明正确的方向。
标签: c# asp.net authentication iis credentials