ASP.NET MVC2 глобальная аутентификация - PullRequest
0 голосов
/ 01 ноября 2010

Я новичок в ASP.NET MVC 2 и столкнулся с простой проблемой.

Дело в том, что я хочу заставить пользователя войти в систему для просмотра моего сайта. Это означает, что когда пользователь запрашивает что-то вроде Home.Index или любого другого Controller.Action, я должен проверить, вошел ли пользователь в систему и, если нет, перенаправить запрос в Auth.LogIn.

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

Так. Есть ли?

1 Ответ

2 голосов
/ 01 ноября 2010

Используйте атрибут [Authorize].

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

Пример

[Authorize]
public class MyController : Controller {
}

или

public class MyController : Controller {

    [HttpGet]
    [Authorize]
    public ActionResult Index()
    {
        return View();
    }
}

Атрибут Authorize просто проверяет,пользователь вошел в систему или нет.Вид входа в систему, куда он перенаправляет пользователя, определен в вашем файле web.config.Если вы проверите свой файл web.config, то внутри тега system.web найдете следующий раздел:

<authentication mode="Forms">
    <forms loginUrl="~/Login/LogOn" name=".td_gsl_login_cookie" timeout="30" 
slidingExpiration="true"/>
</authentication>

Атрибут loginUrl - это действие контроллера, на которое пользователя перенаправляют, если он не вошел в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...