我有一个在我的本地开发盒(Win7)和登台服务器(W2k8r2)上运行的ASP.NET MVC 3应用程序。在启用ASP.NET Windows授权安全性之前,应用程序在两种环境中都能正常运行。
保护网络应用程序后,它会继续在登台服务器上正常运行,但在我的本地开发框中生成401.2访问被拒绝。我能看到的唯一重要区别是本地开发盒,我通过Visual Studio使用Cassini,而服务器是IIS7.5。
正在使用Windows授权+模拟。什么可能导致卡西尼生成这些401.2访问被拒绝?
Web.config是:
<system.web>
<authentication mode="Windows" />
<identity impersonate="true" />
<!-- replication of system.webServer security settings for cassini which doesn't process them... -->
<authorization>
<allow roles=".\Test Application - Users" />
<deny users="*" />
</authorization>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" users="" roles="Test Application - Users" />
</authorization>
</security>
仅供参考。相关用户位于每个系统的“测试应用程序 - 用户”Windows安全组中。
解决方案
开发框的根本问题是:
如果卡西尼支持假冒,我怀疑这会是一个问题,因为在假冒情境中会建立一个新的令牌。感谢@ x0n指向正确的方向。
答案 0 :(得分:2)
我不完全确定,但我不认为卡西尼可以冒充(然而,快递可以。)
答案 1 :(得分:0)
在解决方案资源管理器窗格中选择Web项目并按F4 。 (不是右键单击+属性,这是不同的) - 这将显示属性窗格
在属性窗格中,然后设置: Windows身份验证:启用 匿名身份验证:已禁用
运行你的项目,Happy Days!