Как поддерживать сеанс пользователя с помощью ASP.NET MVC

Привет, ребята, я хотел бы знать, есть ли способ поддерживать такие вещи, как вход в систему, выход из системы, user-session..etc без использования членства в ASP.NET MVC?

Faraaz.

Ответ 1

Вам нужно использовать словарь сеанса и сервер состояния сеанса. Подробнее см. http://msdn.microsoft.com/en-us/library/ms178581.aspx.

Слово предупреждения. По моему опыту, режим состояния сеанса InProc сохраняет только значения, которые вы помещаете в сеанс для времени жизни текущего HTTP-запроса. Они не сохраняются в запросах, как вы могли ожидать, даже когда вы используете один HTTP-сервер, и вы думаете, что хранение в памяти будет сохраняться. Это может произойти только при отладке с использованием встроенного HTTP-сервера в VS2010, но даже в этом случае вы можете столкнуться с множеством проблем, пытаясь понять, почему информация о состоянии не сохраняется.

Ответ 2

Существуют три модели поставщиков, относящиеся к областям, к которым вы обращаетесь.

MembershipProvider посвящен аутентификации, проверки пользователей и хранения данных, связанных с пользователем, таких как дата последнего входа, имя пользователя и т.д.

RoleProvider посвящен авторизации пользователей для определенных областей вашего приложения.

SessionStateProvider посвящен сохранению сеанса для вашего приложения.

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

Ответ 3

Вы можете использовать объект Session для хранения данных, привязанных к сеансу.

Но для аутентификации/авторизации вам нужно будет создать свою собственную схему.