Аутентификация и безопасность форм - PullRequest
1 голос
/ 02 августа 2011

Я создаю веб-приложение (C #, MVC3) и пытаюсь найти наилучший способ входа пользователя в систему. Я придерживаюсь встроенной платформы FormsAuthentication и пользовательского провайдера членства для проверки пользователя. Но проблема в том, что существует много информации о пользователе (имя, фамилия, идентификатор пользователя, дата последнего входа в систему и т. Д.), Которую я хотел бы сохранить где-нибудь для быстрого доступа в своем коде.

Первой мыслью было перегрузить IIdentity и IPrincple, но я читал, что им требуется попадание базы данных при каждой загрузке страницы. Тогда я думал о файлах cookie, но в некоторых сообщениях говорилось, что неразумно хранить в них конфиденциальную информацию.

Любые предложения будут великолепны.

Ответы [ 2 ]

2 голосов
/ 03 августа 2011

Вы все еще можете использовать FormsAuthentication. Конфиденциальная информация пользователя может храниться в свойстве FormsAuthenticationTicket.UserData . И это безопасно - файл cookie аутентификации шифруется FormsAuthenticationModule после FormsAuthenticationTicket сериализации.

1 голос
/ 02 августа 2011

Я создал класс с именем MiniUserModel в своем приложении, который содержит несколько нужных мне сведений, в том числе идентификатор пользователя, имя и т. Д., Но ничего сверхчувствительного.строку JSON и запишите значение в Cookie.

Это позволяет мне легко получать доступ к данным при каждом просмотре страницы без повторного запроса к базе данных.Поскольку мой объект небольшой, файл cookie и размер получаемого запроса не пострадают.Однако это добавляет «некоторые» издержки для дешифрования и десериализации каждого запроса.(вы можете профилировать его, чтобы увидеть, если это проблема ... в моем случае это не так).

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

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