繁体   English   中英

将活动目录组与Windows身份验证aspnet mvc 3集成

[英]integrating active directory group with windows authentication aspnet mvc 3

我在mvc 3应用程序中使用Windows身份验证,我只希望我的某些活动目录组访问此应用程序。 我没有在我的控制器中使用[Authorize]属性,只是我的web.config配置。

这是我设置web.config的方式:

  <system.web>
    <authentication mode="Windows" />
    <authorization>
    <allow roles="EUsers" />
        <deny users="*" />
    </authorization>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
    <security>
        <authorization>
            <add accessType="Allow" roles="EUsers" />
            <add accessType="Deny" users="*" />
        </authorization>
    </security>
  </system.webServer>

我还在IIS授权部分启用了Windows身份验证和ASP.NET Impersation。 我正在尝试与我的用户访问该应用程序(我是EUsers的成员),但它总是提示我的用户和密码。 我忘记了什么吗? 难道我做错了什么?

我没有在我的控制器中使用[Authorize]属性,只是我的web.config配置。

那简直是错的。 在ASp.NET MVC应用程序中,您不应使用web.config来控制授权。 您应该使用[Authorize]属性。 所以:

[Authorize(Roles = "EUsers")]

我在评论部分看到它仍然无法正常工作。 我相信这可能是因为“拒绝”被明确分配给users =“*”和权限优先规则

以下是解决权限冲突的一些规则:

“拒绝”权限通常优先于“允许”权限。 直接应用于对象的权限(显式权限)优先于从父级继承的权限(例如,从组中)。 从近亲属继承的权限优先于从远程前辈继承的权限。 因此,从对象的父文件夹继承的权限优先于从对象的“祖父”文件夹继承的权限,依此类推。 来自同一级别的不同用户组(直接设置或继承,以及“拒绝”或“允许”)的权限是累积的。 因此,如果用户是两个组的成员,其中一个组具有“允许”权限“读取”而另一个组具有“允许”“写入”,则用户将具有读写权限 - 取决于当然,上面的其他规则。 虽然拒绝权限通常优先于允许权限,但情况并非总是如此。 显式“允许”权限可以优先于继承的“拒绝”权限。

权限的优先级层次结构可以总结如下,列表顶部列出了较高的优先权:

  1. 明确拒绝
  2. 明确允许
  3. 继承拒绝
  4. 继承允许

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM