2011-12-27 5 views
1

Если атрибут authorize был применен к контроллеру, можно ли разрешить несанкционированный доступ к action/viewresult внутри этого контроллера? Скажем, например, я не хотел разрешения происходить на Test2 в следующем:Контроллер переопределения Авторизованный атрибут для viewresult

[Authorize] 
public class TestController : Controller 
{ 

    public ViewResult Test() 
    { 
     return View(); 
    } 

    public ViewResult Test2() 
    { 
     return View(); 
    } 
} 

Спасибо заранее.

ответ

1

Нет, это невозможно. Вам нужно будет применить атрибут Authorize в тестовом действии, а не на контроллере. Другая возможность - поместить действие Test2 на другой контроллер, который не украшен этим атрибутом.

+0

Новый контроллер тогда. Спасибо Дарин –

+1

Вы также можете создать атрибут AuthorizeAnonymous и использовать его с помощью авторизованного контроллера – IamStalker

0

В MVC 3 оказалось, что это действительно невозможно сделать (как упоминалось Дарин Димитров), но если кто-либо, использующий MVC 4 (и выше), сталкивается с этим вопросом, он должен иметь возможность использовать фильтр AllowAnonymous для достичь результата. Таким образом, код станет следующим:

[Authorize] 
public class TestController : Controller 
{ 

    public ViewResult Test() 
    { 
     return View(); 
    } 

    [AllowAnonymous] 
    public ViewResult Test2() 
    { 
     return View(); 
    } 
} 
Смежные вопросы