题
我上一个项目,是点击一次从工作部署IIS 7.5 Web服务器。安装父应用程序后(即设置IIS站点),我能够打的URL点击一次从远程箱的应用程序的配置文件。点击 然而,当我试图从我的应用程序(和尾应用下同)做同样的事情,我得到一个401未授权。
是什么击中从IE的URL之间的差,并且从.NET应用程序?结果 文件和目录本身有此刻的Web服务器授予每个人完全控制,我在包装盒上的管理员。我们正在使用Windows身份验证使用NTLM只。
谢谢, -Bob
下面是产生401存根应用 - 未经授权的doc.Load()线时。我可以从IE浏览器成功击中同一个网址,打开文件...
static void Main(string[] args)
{
Console.WriteLine("Config Test");
string filename = "http://dev-rs/myClient/myClickOnce/myApp.config.xml";
Console.WriteLine(filename);
XmlDocument doc = new XmlDocument();
doc.Load(filename);
Console.WriteLine("Loaded");
Console.WriteLine("Inner Text : " + doc.InnerText);
}
解决方案
,建立这样的原则:
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
的XMLDocument不支持将凭证当从URL加载。而不是从WebRequest的流加载和设置在负载之前的请求的证书。
WebRequest request = HttpWebRequest.Create(filename);
request.Credentials = CredentialCache.DefaultCredentials;
XmlDocument doc = new XmlDocument();
doc.Load(request.GetResponse().GetResponseStream());
不隶属于 StackOverflow