2012-01-27 82 views
1

在自己的管理文件夾的根,我的在我的web.config以下:的system.webServer /安全/在我的IIS 7的web.config授權不工作

<system.webServer> 
    <security> 
     <authorization> 
        <remove users="*" roles="" verbs="" /> 
        <add accessType="Allow" users="" roles="Admin" /> 
     </authorization> 
    </security> 
</system.webServer> 

這幾乎是逐字從IIS documentation,但我改變了角色爲「管理員」而不是「管理員」,因爲這是我的應用程序中的角色。

我已經確保ASP.NET UrlAuthorization模塊沒有通過我的根web.config的modules元素中的<remove name="UrlAuthorization" />運行。我只是安裝了IIS7 UrlAuthorization,所以我知道它正在運行。

問題是,即使我明確允許管理員角色並驗證了我的管理員用戶已登錄,但管理員將獲得未經授權的錯誤。我誤解了什麼?

注意,因爲我開始寫這個問題,我解決了這個問題我明確列舉禁止所有的角色和去除remove users="*",但我不知道爲什麼它的工作。

+0

當您刪除該規則,允許訪問所有人,以該管理員用戶身份登錄時,HttpContext.User是否顯示該用戶處於預期角色?另外,你是否嘗試在system.web/authorization中設置等價物(這就是我的工作地點,它適用於IIS7)? – 2012-01-28 04:25:53

+0

是的,管理員登錄,我已經確認,與一個'Response.Write(User.IsInRole(「管理員」));'。是的,我嘗試使用system.web並註冊UrlAuthorization模塊 – smartcaveman 2012-01-28 16:25:59

回答

0

它看起來不會有這樣的答案。但是如果其他人遇到同樣的問題,我最終不得不改變我的方法並從ASP.NET管道外部管理安全性。