con*_*nit 4 authentication authorization asp.net-core
我有一个示例问题与这篇文章动态添加角色授权控制器的属性,但对于ASP.NET 5(vNext)在ASP.NET 5中,我不能覆盖AuthorizeAttribute类,如上所述.那么如何在ASP.NET 5中动态添加角色控制器(vNext)
提前致谢.
正如迈克所说,你需要政策.这是一个实现.
public class CustomRoleRequirement : AuthorizationHandler<CustomRoleRequirement>, IAuthorizationRequirement
{
protected override void Handle(Microsoft.AspNet.Authorization.AuthorizationContext context, CustomRoleRequirement requirement)
{
var roles = new[] { "Admin", "Admin2", "Admin3" }; //Get From DB.
var userIsInRole = roles.Any(role => context.User.IsInRole(role));
if (!userIsInRole)
{
context.Fail();
return;
}
context.Succeed(requirement);
}
}
Run Code Online (Sandbox Code Playgroud)
并在startup.cs中的ConfigureServices方法中
services.ConfigureAuthorization(options =>{
options.AddPolicy("CustomRole", policy => policy.AddRequirements(new CustomRoleRequirement()));
});
Run Code Online (Sandbox Code Playgroud)
你需要像这样在控制器中提供autorize属性.
[Authorize(Policy = "CustomRole")]
Run Code Online (Sandbox Code Playgroud)
资料来源:https://forums.asp.net/post/5975557.aspx
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
6982 次 |
| 最近记录: |