ASP.NET MVC 3允许基于AD组的Intranet站点访问

时间:2012-08-14 11:28:25

标签: asp.net asp.net-mvc-3

是否有办法允许基于AD组对我的Intranet站点进行站点范围访问,而无需在每个控制器上使用[Authorize]属性?

我正在使用Windows身份验证。

3 个答案:

答案 0 :(得分:3)

在网络配置中使用

 <system.web>
    <authentication mode="Windows">
    </authentication>
    <authorization>
        <allow users="groupname"/>
        <deny users="*"/>
    </authorization>
 </system.web>

答案 1 :(得分:2)

您可以将AuthorizeAttribute添加到全局过滤器集合中,如here所述。

public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
    filters.Add(new AuthorizeAttribute());
    filters.Add(new HandleErrorAttribute());
}

restricts file-based access开始,通常使用Web.config authorization元素是一个好主意。但是当您保护整个站点时,使用Web.config文件也可以正常工作。

答案 2 :(得分:-1)

IIS 7&amp; IIS 8

  1. 打开IIS管理器并导航到您的网站。
  2. 在“功能视图”中,双击“身份验证”。
  3. 在“身份验证”页面上,选择“Windows身份验证”。如果Windows身份验证不是一个选项,则需要确保在服务器上安装了Windows身份验证。
  4. 在Windows上启用Windows身份验证:

    a)在“控制面板”中打开“程序和功能”。

    b)选择“打开或关闭Windows功能”。

    c)导航到Internet信息服务&gt;万维网服务&gt;安全性并确保选中Windows身份验证节点。

    在Windows Server上启用Windows身份验证:

    a)在服务器管理器中,选择“Web服务器(IIS)”,然后单击“添加角色服务”

    b)导航到Web服务器&gt;安全性并确保选中Windows身份验证节点。

    最后

    1. 在“操作”窗格中,单击“启用”以使用Windows身份验证。
    2. 在“身份验证”页面上,选择“匿名身份验证”。
    3. 在“操作”窗格中,单击“禁用”以禁用匿名身份验证。
    4. IIS Express

      1. 右键单击Visual Studio中的项目,然后选择“使用IIS Express”。
      2. 在解决方案资源管理器中单击您的项目以选择项目。
      3. 如果“属性”窗格未打开,请将其打开(F4)。
      4. 在项目的“属性”窗格中:

        a)将“匿名身份验证”设置为“已禁用”。

        b)将“Windows身份验证”设置为“已启用”。