我上一个项目,是点击一次从工作部署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());
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top