【发布时间】:2016-01-19 23:26:28
【问题描述】:
我想知道如何解决这个问题,即在 IIS 7/8 上运行的具有 Windows 身份验证的 WebApp 在向另一个站点执行 HttpWebRequest 时抛出 401 错误。如果我在本地运行,即调试模式,这个 WebApp 可以正常工作。
这里是代码sn-p
HttpWebRequest webReq;
webReq = (HttpWebRequest)WebRequest.Create("http://sharepoint_site/_vti_bin/listdata.svc/mylist);
webReq.Accept = "application/json";
webReq.UseDefaultCredentials = true;
webReq.Credentials = CredentialCache.DefaultNetworkCredentials;
//webReq.Credentials = new NetworkCredential("user","password","domain");
webReq.Method = "GET";
webReq.KeepAlive = true;
Stream objStream = webReq.GetResponse().GetResponseStream();
StreamReader objReader = new StreamReader(objStream);
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
我还可以通过在注册表中添加 BackConnectionHostNames 条目来使其工作
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
但我需要传入我不喜欢的凭据(上面已注释),因为我不想使用我的帐户或任何服务帐户。
我希望 WebApp 使用 DefaultNetworkCredentials 或 DefaultCredentials。我在托管此 WebApp 的机器的 IIS 上启用了 Windows 身份验证和 NTLM 提供程序。
任何帮助将不胜感激,感谢这个社区的更多力量。
【问题讨论】:
标签: c# iis sharepoint http-status-code-401