Проверка подлинности Asp.Net MVC, где я могу поставить пользовательский ключ сессии? - PullRequest
0 голосов
/ 16 ноября 2009

У меня есть пользовательская база данных, к которой у меня есть доступ через веб-сервис. Один из методов веб-сервиса выглядит примерно так:

public void login(string name, string password, out user_key)

и в моем контроллере я хочу сделать что-то вроде этого:

String key = repo.login(username, password); // a wraper on the login method
if(key ....)
    FormsAuthentication.SetAuthCookie(username, false); 

И мои вопросы, вот они: Этот ключ используется для получения определенных пользовательских данных. Куда мне положить ключ, чтобы я мог получить к нему доступ? Я имею в виду, есть ли метод для класса FormsAuthentication, потому что говоря что-то вроде: Session ["ключ"] = ключ не похоже на хорошую практику для меня. И что здесь хорошего? чтобы плохие парни не взломали мою сессию.

Ответы [ 2 ]

1 голос
/ 16 ноября 2009

Не совсем понимаю, что вы подразумеваете под

Session ["key"] = ключ не похож хорошая практика для меня

Я использовал что-то вроде Controller.HttpContext.Session в течение самого длительного периода времени и совсем не чувствую вины.

Если вы хотите беспокоиться о том, что вас взломали, то вам следует убедиться, что ваш параметр GET правильно санирован, прежде чем он будет передан в базу данных. Это важно.

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

Сеансы отделены от файла cookie аутентификации в ASP.NET, поэтому для того, чтобы перехватить сеанс, злоумышленнику необходимо будет скопировать как файл cookie аутентификации, так и файл cookie сеанса.

Вы можете записать информацию о пользователе как часть билета аутентификации, используя один из конструкторов , которые принимают userData перед генерацией и затем читают ее через свойство UserData . Имейте в виду, что если этот пользовательский ключ чувствителен, вы можете зашифровать куки-файл аутентификации. Это значение по умолчанию в ASP.NET, но стоит конкретизировать и поставить

<forms protection="All" >

в ваш web.config

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