我正在开发一个Intranet应用程序,并希望使用现有组织Active Directory进行用户身份验证和基于策略的角色授权。
有人能指出我正确的方向吗?我有点困惑(实际上很困惑)。
三江源
答案 0 :(得分:3)
http://docs.asp.net/en/latest/security/index.html
下的每个身份验证和自动设置资源首先启动一个新的ASP.Net Web应用程序项目,选择Web应用程序模板,然后在右侧窗格中按"更改身份验证"按钮和选择" Windows身份验证"。
现在,您可以在类或方法上使用[Authorize]
来检查基本身份验证与RC2的活动目录,您只需使用组名称ala [Authorize(Roles=@"DOMAIN\GROUP")]
现在过时且繁琐的替代方案(仍然有效):
如果查看 User.Claims
,您可以看到每个用户组都存在groupsid密钥。假设您可以执行[Authorize(Policy="FOOBAR")]
之类的操作,并通过
Startup.ConfigureServices
方法中进行定义
services.AddAuthorization(
o => o.AddPolicy(
"FOOBAR",
p => p.RequireClaim("http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
"ENTER GROUP SID")
));
请注意,RequireClaim的第二个参数是一个字符串数组,允许多个组。
还要注意通过此命令行魔术 dsquery group -name “ENTER GROUP NAME” | dsget group -sid