2013-04-18 4 views
1

Я использую Asp.Net MVC-4 в своем приложении. Я создал контроллер для eample сказать Person и в этом контроллере у меня есть 3 действия, например сказать GetName, СеЬАде и GetDateOfBirth. Теперь я хочу поставить чек, чтобы пользователь, не имеющий loggedin, не смог получить доступ к этому представлению действий._start.cshtml вид не исполняется

Для этого я пытаюсь использовать _start.cshtml вид. Который я разместил внутри Views/Person/, и я ожидаю, что всякий раз, когда любой пользователь получит доступ к любому виду изнутри Лицо папка, чем _start.cshtml Представление должно запускаться перед любым другим видом. И в * _start.cshtml * я поместил код для проверки того, зарегистрирован ли текущий пользователь или нет. Но _star.cshtml не выполняется.

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?

ответ

5

Теперь то, что я хочу, чтобы поместить чек, так что пользователь, который не LoggedIn не может получить доступ к этому виду действий

Это совершенно не то, что должно быть сделано в представлениях, но на действия контроллера, украсив их атрибутом [Authorize]. Например:

[Authorize] 
public ActionResult SomeAction() 
{ 
    ... 
} 

и у вас также есть возможность указать одну или несколько ролей:

[Authorize(Roles = "Admin")] 
public ActionResult SomeAction() 
{ 
    ... 
} 

Вы также можете украсить контроллер с этим атрибутом, который будет означать, что все действия в ней требуют разрешения.

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