2016-08-03 3 views
0

У меня есть админ панель мониторинг проект, который нужен глобальное разрешение, и я поставил его наAllowAnonymous атрибута сделать Авторизоваться игнорировало

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new AuthorizeAttribute()); 
    } 

, что код делает весь мой контроллер будет санкционировать .. И есть контроллер, который имеет [AllowAnonymous] атрибут .. однако я внезапный запрос на изменение, что действие на этом контроллере должен быть санкционировать ..

[AllowAnonymous] 
public class AuthController : Controller 
{ 
    [Authorize(Roles = "Admin")] 
    public ActionResult BumbaSection() 
    { 
     return View(); 
    } 
} 

Это не работает, я все еще могу открыть BumbaSection действия .. Любую идею? Благодаря

+0

Во-первых, вам не нужно регистрировать AuthorizeAttribute в глобальных фильтрах, это уже часть структуры mvc. Как вы выполняете аутентификацию и как вы храните свои роли, покажите нам свой код. –

ответ

1

После того как я выглядывать код санкционировать Эту часть коды делает авторизированный не работает:

public virtual void OnAuthorization(AuthorizationContext filterContext) 
{ 
    //code here 

    if (filterContext.ActionDescriptor.IsDefined(typeof (AllowAnonymousAttribute), true) || filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof (AllowAnonymousAttribute), true)) 
     return; 

    //code here  
} 

Override этот кусок кода в классе атрибута авторизированного и мой код начнет работать .. Может быть, это будет полезно для тех, у кого есть какие-то проблемы со мной

Смежные вопросы