的system.webServer /安全/在我的IIS 7的web.config授权不工作

问题描述:

在自己的管理文件夹的根,我的在我的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

它看起来不会有这样的答案。但是如果其他人遇到同样的问题,我最终不得不改变我的方法并从ASP.NET管道外部管理安全性。