Встроенный пользовательский атрибут для утверждений в ASP.NET MVC5 Identity 2
Я использую ASP.NET MVC5, который использует Identity 2. Я хочу ограничить доступ контроллера к пользователям, которые имеют определенные претензии. Я создал свой собственный атрибут, как показано ниже, а также назначил его для действия контроллера MVC.
Есть ли такая встроенная возможность? То есть есть ли какой-нибудь пользовательский атрибут, который я могу использовать для этого вместо того, чтобы писать свой собственный?
[ManagerByClaimAttribute]
public ActionResult CheckLoggedInUserIsManagerByClaimWithAttribute()
{
// will not get here unless manager claim attribute set
// becasue of custom attribute [ManagerByClaimAttribute]
return View("CheckLoggedInUserIsManagerByClaimWithAttribute");
}
..
public class ManagerByClaimAttribute : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
var principal = (ClaimsPrincipal) Thread.CurrentPrincipal;
Claim claims = principal.Claims
.FirstOrDefault(c => c.Type == "RoleAssigned" &&
c.Value == "managerbyclaim");
if (claims == null)
{
filterContext.Result = new HttpUnauthorizedResult();
}
}
}