У меня возникли некоторые проблемы с моим обычаем AuthorizeAttributeПользовательское AuthorizeAttributte с Enum Роль PARAMS получать нулевые значения в Ajax вызова
public class ExplicitAuthorizeAttribute : AuthorizeAttribute
{
private readonly MembershipUserRole[] _acceptedRoles;
public ExplicitAuthorizeAttribute()
{
}
public ExplicitAuthorizeAttribute(params MembershipUserRole[] acceptedRoles)
{
_acceptedRoles = acceptedRoles;
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//Validation ...
}
}
Я использую это так:
[ExplicitAuthorize[(MembershipUserRole.Admin, MembershipUserRole.SuperAdmin)]
Он отлично работает для HttpGet и HttpPost для проверки моих контроллеров и методов.
Но когда я использую его в ApiController и делаю ajax-вызовы, AuthorizeCore не работает, и я получил нарушение безопасности. :/
Мой перечисление выглядит следующим образом
[Flags]
public enum MembershipUserRole
{
Admin= 1,
SuperAdmin = 2
}
Кто-нибудь знает, почему мой AuthorizeCore не проверки в этом контексте?
Кстати, если я использую
[Authorized(Roles ="Admin, SuperAdmin")]
Это подтверждает отлично, но я хотел бы иметь Stronly типизированных роли, поэтому я использую перечисления.
Как вы проходя роли пользователя? – Satpal
Ну, я использую его как пользовательский атрибут поверх моего контроллера, как я использую AuthorizeAttribute [Авторизовать (Roles = «Admin, SuperAdmin»)], и он проверяет, но я хотел бы использовать его следующим образом: [ExplicitAuthorize [ (MembershipUserRole.Admin, MembershipUserRole.SuperAdmin)] – nramirez