![](/img/trans.png)
[英]How do I access Original and Modified versions of strongly typed DataRow?
[英]How do I make a strongly typed AuthorizeAttribute
我有一个 blazor Net 5.0 spa 项目
我想将像这样的枚举用于强类型的 AuthorizeAttribute 和 AuthorizeView 用于 Blazor 组件的附加功能,例如检查多个角色是否存在而不是多个角色中的一个
枚举
public enum RolesEnum
{
Access = 1,
Administrator = 2
}
如何创建 AuthorizeAttribute 和 AuthorizeView 的扩展版本?
编辑
作为一个简单的开始,我尝试在没有获得授权的情况下制作像这样的 class。 我也尝试将其添加到服务中。
public class StrongRoleAuthorizeAttribute : AuthorizeAttribute
{
public StrongRoleAuthorizeAttribute(params RolesEnum[] rolesEnums) : base()
{
StrongRoles = rolesEnums;
}
private RolesEnum[] StrongRoles
{
get
{
return this.Roles.Split(",").Select(r => ClaimRoles.GetRolesTypeEnum(r)).ToArray();
}
set
{
this.Roles = string.Join(",", value.Select(r => r.RolesEnumToStringClaim()));
}
}
}
编辑2
我使用错误的方法转换为索赔值
您可以简单地继承该属性:
public class MyAuthorizeAttribute : AuthorizeAttribute
{
private readonly RolesEnum _authorizedRole;
public MyAuthorizeAttribute(RolesEnum authorizedRole)
{
_autorizedRole = authorizedRole;
}
// Override any method you want to use your enum
}
用法是:
[MyAuthorize(RolesEnum.Administrator)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.