有没有办法允许基于 AD 组的站点范围访问我的 Intranet 站点,而不必[Authorize]
在每个控制器上使用属性?
我正在使用 Windows 身份验证。
有没有办法允许基于 AD 组的站点范围访问我的 Intranet 站点,而不必[Authorize]
在每个控制器上使用属性?
我正在使用 Windows 身份验证。
在 webconfig 中使用
<system.web>
<authentication mode="Windows">
</authentication>
<authorization>
<allow users="groupname"/>
<deny users="*"/>
</authorization>
</system.web>
您可以将 添加AuthorizeAttribute
到全局过滤器集合中,如此处所述。
public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
filters.Add(new AuthorizeAttribute());
filters.Add(new HandleErrorAttribute());
}
为此使用 Web.config 元素通常不是一个好主意,authorization
因为这会限制基于文件的访问。但是,当您保护整个站点时,使用 Web.config 文件也同样有效。
要在 Windows 上启用 Windows 身份验证:
a) 在控制面板中打开“程序和功能”。
b) 选择“打开或关闭 Windows 功能”。
c) 导航到 Internet 信息服务 > 万维网服务 > 安全并确保选中 Windows 身份验证节点。
要在 Windows Server 上启用 Windows 身份验证:
a) 在服务器管理器中,选择 Web 服务器 (IIS) 并单击添加角色服务
b) 导航到 Web 服务器 > 安全并确保选中 Windows 身份验证节点。
最后
在项目的“属性”窗格中:
a) 将“匿名验证”设置为“禁用”。
b) 将“Windows 身份验证”设置为“启用”。