2

有没有办法允许基于 AD 组的站点范围访问我的 Intranet 站点,而不必[Authorize]在每个控制器上使用属性?

我正在使用 Windows 身份验证。

4

3 回答 3

3

在 webconfig 中使用

 <system.web>
    <authentication mode="Windows">
    </authentication>
    <authorization>
        <allow users="groupname"/>
        <deny users="*"/>
    </authorization>
 </system.web>
于 2012-08-14T11:34:01.500 回答
2

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

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

为此使用 Web.config 元素通常不是一个好主意,authorization因为这会限制基于文件的访问。但是,当您保护整个站点时,使用 Web.config 文件也同样有效。

于 2012-08-14T11:32:37.530 回答
0

IIS 7 和 IIS 8

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

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

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

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

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

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

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

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

最后

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

IIS 快递

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

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

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

于 2012-08-14T11:36:38.263 回答