use*_*943 5 asp.net windows-authentication
我一直试图解决这个问题几个星期现在通过Google阅读SO,没有太多运气,所以我想我终于试着问自己了.
我ASP.NET在内联网上建立了一个非常非常简单的站点,为内部用户生成一些信息.我使用的是Windows身份验证,而不是匿名访问,因为根据用户访问网站,我将生成不同的信息.
长话短说,这完全适用于Windows 7我开发应用程序的本地机器上的测试.但是,从Windows 2008 R2 server我想要它驻留的地方,当我点击网站时,我会得到一个弹出窗口询问我的凭据,即使我输入它们,它也会一次又一次地询问我.无论我是远程还是本地访问该站点,都会发生这种情况.如果我尝试使用匿名访问,我可以通过两种方式访问该网站,但由于我无法识别用户,因此无法生成我想提供的信息.
笔记:
在IIS中,我为站点启用了Windows身份验证和ASP.NET模拟.其他一切都被禁用了.
为了解决这个问题,我目前将web.config设置为允许所有用户,而不是否认任何用户.
在AppHost文件中,我目前启用了WindowsAuthentication.
<windowsAuthentication enabled="true">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
Run Code Online (Sandbox Code Playgroud)不可否认,我通常在此服务器上为所有其他内部站点使用表单身份验证,因此我对Windows身份验证和此问题有点新鲜.在这一点上,我只是不确定下一步要做什么或检查,所以任何建议都会有所帮助.谢谢.
小智 10
我知道这是一个稍微陈旧的话题,但我有同样的问题.事实证明我使用Identity:ApplicationPoolIdentity而不是NetworkService来使用AppPool.一旦我切换它(在IIS7.5中的高级设置下)我不再让服务器提示输入额外的凭据,并且传递工作完美.
希望有所帮助!
首先,您应该意识到 Windows 直通身份验证仅适用于 Internet Explorer,并且仅当站点位于受信任站点或 Intranet 站点安全组中时才有效。Firefox、Chrome 等将始终提示输入凭据。
话虽如此,你有几个问题。
<authentication mode="Windows" />你的 web.config 中应该有一个元素
您应该决定是否希望应用程序在用户上下文中运行,在这种情况下,您还需要一个<identity impersonate="true"/>标签。如果不是,它应该是 false(尽管这是默认值)。
如果站点本身完全受到 Windows 身份验证的保护,则无需在 web.config 中设置任何授权规则。
| 归档时间: |
|
| 查看次数: |
18759 次 |
| 最近记录: |