ASP.NET Web Pages - Объект WebSecurity

Описание

Объект WebSecurity предоставляет безопасность и аутентификацию для приложений ASP.NET Web Pages.

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

Референс-мануал объекта WebSecurity - Атрибуты

Атрибуты Описание
CurrentUserId Получить ID текущего пользователя.
CurrentUserName Получить имя текущего пользователя.
HasUserId Получить значение, указывающее, имеет ли текущий пользователь ID пользователя. Если да, верните true.
IsAuthenticated Получить текущее состояние аутентификации пользователя.

Референс-мануал объекта WebSecurity - Методы

Атрибуты Описание
ChangePassword() Изменить пароль пользователя.
ConfirmAccount() Подтвердить有效性 учетной записи и активировать эту учетную запись.
CreateAccount() Создать новую учетную запись пользователя.
CreateUserAndAccount() Создать новую учетную запись пользователя.
GeneratePasswordResetToken() Создать токен для сброса пароля, который можно отправить пользователю по электронной почте.
GetCreateDate() Вернуть дату и время создания учетной записи члена.
GetPasswordChangeDate() Вернуть дату и время последнего изменения пароля учетной записи члена.
GetPasswordFailures
SinceLastSuccess()
Вернуть количество неудачных попыток ввода пароля с момента последней успешной авторизации или создания учетной записи члена.
GetUserId() Вернуть ID пользователя на основе указанного имени пользователя.
GetUserIdFrom
PasswordResetToken ()
Вернуть ID пользователя из токена для сброса пароля.
InitializeDatabaseConnection() Инициализировать систему членства через подключение к базе данных, содержащей информацию о пользователях.
IsAccountLockedOut() Указать, был ли аккаунт заблокирован из-за слишком большого количества неудачных попыток пароля.
IsConfirmed() Вернуть значение, указывающее, был ли пользователь подтвержден.
IsCurrentUser() Вернуть значение, указывающее, соответствует ли имя пользователя, который вошёл, указанному имени пользователя.
Login() Вход пользователя.
Logout() Выход пользователя.
RequireAuthenticatedUser() Если пользователь не прошел аутентификацию, установите HTTP-статус в 401 (не авторизован).
RequireRoles() Если текущий пользователь не принадлежит к указанной роли, установите HTTP-статус код в 401.
RequireUser() Если текущий пользователь не указанный пользователь, установите HTTP-статус в 401.
ResetPassword() Перенести пароль с помощью токена для сброса пароля.
UserExists() Проверить, существует ли пользователь.

Технические данные

Name Value
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

Инициализация базы данных WebSecurity

Прежде чем использовать объект WebSecurity, необходимо создать или инициализировать базу данных WebSecurity.

В директории web, создайте или отредактируйте страницу _AppStart.cshtml.

В этом файле введите следующий код:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", 
true);
}

Каждый раз при запуске сайта выполняется вышеуказанный код. Он инициализирует базу данных WebSecurity.

"Users" - это имя базы данных WebSecurity (Users.sdf).

"UserProfile" - это имя базы данных, которая содержит информацию о настройках пользователя.

"UserId" - это имя столбца, содержащего ID пользователя (ключ PRIMARY).

"Email" - это имя столбца, содержащего имя пользователя.

Последний параметр true - это логическое значение, указывающее на создание таблицы профилей пользователей и таблицы членства (если они отсутствуют), в противном случае false.

Совет: хотя true указывает на автоматическое создание таблиц базы данных, сама база данных не создается автоматически. Она должна существовать.

База данных WebSecurity

Каждая запись в таблице UserProfile представляет пользователя, включая ID пользователя (ключ PRIMARY) и имя пользователя (email):

UserId Email
1 john@johnson.net
2 peter@peterson.com
3 lars@larson.eut

Таблица Membership содержит информацию о членстве, например, когда пользователь был создан и подтвердил ли он членство (и когда).

Похоже на это (некоторые столбцы не перечислены):

UserId Дата создания Подтверждение
Токен
Если
Подтверждение
Последний
Ошибка пароля
Пароль Изменение пароля
1 12.04.2012 16:12:17 NULL True NULL AFNQhWfy.... 12.04.2012 16:12:17

Комментарии:Если вы хотите увидеть все столбцы и все содержимое, откройте базу данных через WebMatrix и посмотрите каждую таблицу.

Простая конфигурация членства

Если ваш сайт не настроен для использования ASP.NET Web Pages членства SimpleMembership, может возникнуть ошибка при использовании объекта WebSecurity.

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

<appSettings> 
<add key="enableSimpleMembership" value="true" /> 
</appSettings>