ASP.NET MVC3: как обеспечить вход в систему до запуска кода контроллера? - PullRequest
0 голосов
/ 15 ноября 2011

Я просто хочу убедиться, что они вошли в систему, прежде чем запускать какой-либо код.

Я обнаружил User.Identity.IsAuthenticated, который может быть использован для логического проверки входа в систему.Но если бы я делал перенаправление, он все равно выполнял бы код, плюс мне пришлось бы его везде помещать?

В ROR была опция before_filter, которую мы делали, которая проверяла в верхней части каждого контроллера и не запускала егов противном случае.

Пожалуйста, кто-нибудь может подсказать мне, как это сделать.

Ответы [ 3 ]

4 голосов
/ 15 ноября 2011

Вы можете использовать AuthorizeAttribute для этого:

Когда вы помечаете метод действия с помощью AuthorizeAttribute, доступ к этому методу действия ограничен для пользователей, которые аутентифицированы иавторизован.Если вы помечаете контроллер атрибутом, все методы действий в контроллере ограничены.

Атрибут Authorize позволяет указать, что авторизация ограничена предопределенными ролями или отдельными пользователями.Это дает вам высокую степень контроля над тем, кто авторизован для просмотра любой страницы на сайте.

Если неавторизованный пользователь пытается получить доступ к методу, помеченному атрибутом Authorize, платформа MVC возвращает HTTP 401код состояния.Если сайт настроен на использование проверки подлинности с помощью форм ASP.NET, код состояния 401 заставляет браузер перенаправить пользователя на страницу входа.

Например:

[Authorize]
public ActionResult DoSomething()
{
    // ...
}
2 голосов
/ 15 ноября 2011

Используйте атрибут авторизации.

[Authorize]
public ActionResult About()
{
    return View();
}
2 голосов
/ 15 ноября 2011

В верхней части вашего класса контроллера, напишите это: -

[Authorize]
public class StoreManagerController : Controller
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...