动态添加角色以授权 ASP.NET 5 中控制器的属性

2023-12-13

我对这篇文章有一个示例问题动态添加角色为控制器授权属性但对于 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);
    }
}

并在startup.cs中的ConfigureServices方法中

services.ConfigureAuthorization(options =>{
    options.AddPolicy("CustomRole", policy => policy.AddRequirements(new CustomRoleRequirement()));
});

并且您需要像这样在控制器中提供 autorize 属性。

[Authorize(Policy = "CustomRole")]

Source: https://forums.asp.net/post/5975557.aspx

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态添加角色以授权 ASP.NET 5 中控制器的属性 的相关文章

随机推荐