gpt4 book ai didi

authentication - 在 ASP.NET 5 中动态添加角色以授权 Controller 的属性

转载 作者:行者123 更新时间:2023-12-04 08:26:28 26 4
gpt4 key购买 nike

我在这篇文章中有一个示例问题 Dynamically add roles to authorize attribute for controller但对于 ASP.NET 5 (vNext)
在 ASP.NET 5 中,我不能像上面的帖子所说的那样覆盖 AuthorizeAttribute 类。那么如何在 ASP.NET 5 (vNext) 中动态添加角色 Controller

提前致谢。

最佳答案

正如迈克所说,你需要政策。这是一种实现。

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()));
});

并且您需要像这样在 Controller 中提供 autorize 属性。
[Authorize(Policy = "CustomRole")]

来源: https://forums.asp.net/post/5975557.aspx

希望能帮助到你。

关于authentication - 在 ASP.NET 5 中动态添加角色以授权 Controller 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33076266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com