C# 打开intranet URL XP提示获取凭据NTLM兼容性

C# 打开intranet URL XP提示获取凭据NTLM兼容性,c#,internet-explorer,security,backwards-compatibility,ntlm,C#,Internet Explorer,Security,Backwards Compatibility,Ntlm,我们的网络上有一个内部网站,它使用NTLM执行单点登录,无任何问题。我编写了一个C#应用程序,它生成了一个带有站点URL的IE窗口。由于应用程序还从受保护的文件夹安装其他应用程序,并且域上的用户具有受限制的权限,因此它使用本地管理帐户运行 我试过: System.Diagnostics.Process.Start("IExplore.exe", "http://MyIntranetSite/"); // and System.Diagnostics.Process.Start("http://M

我们的网络上有一个内部网站,它使用NTLM执行单点登录,无任何问题。我编写了一个C#应用程序,它生成了一个带有站点URL的IE窗口。由于应用程序还从受保护的文件夹安装其他应用程序,并且域上的用户具有受限制的权限,因此它使用本地管理帐户运行

我试过:

System.Diagnostics.Process.Start("IExplore.exe", "http://MyIntranetSite/");
// and
System.Diagnostics.Process.Start("http://MyIntranetSite/");
这在Windows 7上可以正常工作,但在Windows XP上,它会提示用户提供NTLM身份验证的凭据


有人能告诉我如何避开这个问题的正确方向吗?

最可能的原因是IE设置。NTLM SSO仅在IE选择使用SSPI并与服务器握手时在客户端起作用。IE解析URL并使用其安全设置来决定是执行SSO还是提示Cred

您使用的是哪个版本的IIS?它是Windows 2003服务器,这意味着它应该是Microsoft IIS/6.0。我还发现,由于6.x中的错误,从IIS进行NTLM握手时存在错误配置,该错误在以后的版本中得到解决。令人困惑的是,如果用户在运行程序之前打开IE窗口,则不会提示他们输入凭据。。。有趣!