我有我的本地開發箱(Win7)和登臺服務器(W2k8r2)上運行的ASP.NET MVC 3應用程序。在啓用ASP.NET Windows授權安全性之前,應用程序在兩種環境中均可正常運行。卡西尼忽略Win NT角色授權,IIS 7.5一切ok
保護Web應用程序後,它在分段服務器上繼續正常運行,但在本地開發框上生成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安全組。
解決方案
在開發框根本的問題竟然是是:
- 卡西尼不支持身份模擬和
- 雖然用戶已經了添加到相關NT組中,他們沒有註銷/開啓,因此與其Windows標記關聯的組SID沒有被刷新
如果卡西尼支持模擬,我懷疑這會是一個問題,因爲在模擬上下文中已經建立了新的令牌。感謝@ x0n指向正確的方向。
我不完全確定,但我不認爲卡西尼可以模仿(但是,iis express可以)。 – x0n
@ x0n - 你似乎是對的。在下面回答我自己的問題,這與你的評論有關 – geoffreys
好吧,如果你不介意,我會通過重複我的評論作爲你可以接受的答案來褻瀆你的評論;) – x0n