2011-09-09 29 views
1

我有我的本地開發箱(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安全組。

解決方案

在開發框根本的問題竟然是是:

  1. 卡西尼不支持身份模擬
  2. 雖然用戶已經了添加到相關NT組中,他們沒有註銷/開啓,因此與其Windows標記關聯的組SID沒有被刷新

如果卡西尼支持模擬,我懷疑這會是一個問題,因爲在模擬上下文中已經建立了新的令牌。感謝@ x0n指向正確的方向。

+3

我不完全確定,但我不認爲卡西尼可以模仿(但是,iis express可以)。 – x0n

+0

@ x0n - 你似乎是對的。在下面回答我自己的問題,這與你的評論有關 – geoffreys

+0

好吧,如果你不介意,我會通過重複我的評論作爲你可以接受的答案來褻瀆你的評論;) – x0n

回答

2

我不能完全肯定,但我不認爲卡西尼可以模擬(IIS Express可以,但是。)

+0

是的,這似乎是案子。開發盒上的根本問題竟然是: (1)。(2)雖然用戶已被添加到相關的NT組,但他們沒有註銷/打開,因此與其Windows標記相關聯的組SID沒有被刷新。 如果冒名頂替得到了卡西尼的支持我懷疑這會是一個問題,因爲在模擬環境中會建立一個新的令牌。 – geoffreys

0

在Solution Explorer窗格選擇Web項目,按F4鍵。 (不右鍵+屬性,這就是不同) - 這將顯示屬性面板

在屬性面板然後設置: Windows身份驗證:啓用 匿名身份驗證:殘疾人

運行您的項目,快樂的日子!