ASP .NET MVC 3 + Обработка события приема HTTP-запроса - PullRequest
0 голосов
/ 10 января 2012

Я только начал разработку полнофункционального веб-приложения с использованием платформы ASP .NET MVC 3.Я начинающий разработчик MVC 3.


Мне нужен способ реализовать следующую логику:

Когда мое приложение получает HTTP-запрос от браузера, я хочу проверить, есть ли сеансдопустимо в этом браузере.

Если нет, я хочу выполнить метод действия Index моего контроллера подключений.Метод действия Index возвращает в браузер страницу HTML5, которая позволяет пользователю аутентифицировать себя в приложении.

Если сеанс действителен, то я хочу проверить, хранятся ли переменные сеанса IdUtilSession и IdSocSession.Если обе переменные сеанса не сохранены, я хочу выполнить метод действия Index моего контроллера подключений.


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

Я хочу знать событие, которое мне нужно обработать - «Когда мое приложение получает HTTP-запрос».Я прочитал следующую страницу документации MSDN по жизненному циклу приложения ASP .NET: http://msdn.microsoft.com/en-us/library/ms178473.aspx Последовательность событий запускается во время обработки запроса от: Нужно ли обрабатывать одно из этих событий в моем файле Global.asax?

Заранее благодарим за помощь в будущем

1 Ответ

1 голос
/ 10 января 2012

Более MVCish способ достичь этого - написать собственный атрибут авторизации (вместо того, чтобы полагаться на события, которые чаще используются в классическом ASP.NET, а не ASP.NET MVC):

public class MyAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        var authorized = base.AuthorizeCore(httpContext);
        if (!authorized)
        {
            return false;
        }

        var session = httpContext.Session;
        return session["IdUtilSession"] != null &&
               session["IdSocSession "] != null;
    }
}

и затем вместо использования атрибута [Authorize] по умолчанию используйте свой пользовательский атрибут [MyAuthorize].

Что касается части I want to execute the Index action method of my Connection controller, вы можете установить атрибут loginUrl в теге <forms>в вашем web.config указывать на правильный URL.

...