WebAPI 中的 ClassMethod 属性
本文关键字:属性 ClassMethod 中的 WebAPI | 更新日期: 2023-09-27 18:31:01
希望获得一些关于能够装饰WebApi控制器类和方法的建议。
- 是否可以在类级别(而不是方法级别)添加"方法属性"?
- 如何添加以枚举作为参数的属性? 例如 [AuthorisedRoles(Roles.Developer, Roles.Testers, Roles.PM)]
提前感谢任何指示。
像这样的东西(未经测试):
public class TestController : ApiController
{
//[Authorize(Roles = "dev, user")]
[EnumRolesAuthorise(UserRoles.Developer, UserRoles.Testers, UserRoles.PM)]
public string Get()
{
throw new NotImplementedException();
}
}
public class EnumRolesAuthoriseAttribute : AuthorizeAttribute
{
public EnumRolesAuthoriseAttribute(params UserRoles[] roles)
{
Roles = string.Join(",", roles.Select(r => Enum.GetName(typeof (UserRoles), r)));
}
}
public enum UserRoles
{
Developer,
Testers,
PM
}
我相信您可以像操作一样轻松地将[EnumRolesAuthorise]
应用于控制器[Authorize]
。