Какой шаблон может помочь отслеживать Session ["objectName"] в веб-приложении ASP.NET MVC? - PullRequest
1 голос
/ 15 сентября 2009

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

    private void VerifiedUserSession()
    {
        int? userID = (int?)Session["UserID"];
        if (userID.HasValue)
        {
            IUsersRepository userRepository = new SQLUserRepository();
            _user = userRepository.GetUser(userID.Value);
        }
        //TODO: Need to create a response for where the session is empty or null;
    }

Ответы [ 2 ]

2 голосов
/ 15 сентября 2009

Вам следует учитывать атрибут Authorize, если вы пытаетесь аутентифицировать / авторизовать пользователей.

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

Кроме того, вы можете переопределить метод OnActionExecuting BaseController. В этом методе, если вы можете проверить существующий сеанс пользователя и, если он не существует, вы можете установить свойство filterContext.Result (на что угодно), чтобы предотвратить выполнение действия. Вероятно, вам следует перейти на страницу входа или что-то еще.

0 голосов
/ 13 ноября 2009

Я думаю, что это тот же вопрос, на который я недавно ответил: Лучший способ выполнения строго типизированных сеансов ASP.NET MVC

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