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


Описание

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

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


Справочное руководство по объекту WebSecurity - Свойства

Свойства Описание
CurrentUserId Получает ID текущего вошедшего в систему пользователя.
CurrentUserName Получает имя текущего вошедшего в систему пользователя.
HasUserId Возвращает true, если существует ID текущего пользователя.
IsAuthenticated Возвращает true, если текущий пользователь вошёл в систему.

Справочное руководство по объекту WebSecurity — Методы

Методы Описание
ChangePassword() Изменяет пароль указанного пользователя.
ConfirmAccount() Подтверждает учётную запись с помощью токена подтверждения учётной записи.
CreateAccount() Создаёт новую учётную запись пользователя.
CreateUserAndAccount() Создаёт новую учётную запись пользователя.
GeneratePasswordResetToken() Генерирует токен сброса пароля, который можно отправить пользователю по электронной почте, чтобы пользователь мог сбросить свой пароль.
GetCreateDate() Возвращает время, когда было создано указанное членство.
GetPasswordChangeDate() Возвращает дату и время изменения пароля.
GetUserId() Возвращает идентификатор пользователя по имени пользователя.
InitializeDatabaseConnection() Инициализирует систему WebSecurity (база данных).
IsConfirmed() Проверяет, был ли пользователь подтверждён. Возвращает true, если подтверждён. (Например, подтверждение может быть выполнено по электронной почте.)
IsCurrentUser() Проверяет, совпадает ли имя текущего пользователя с указанным именем пользователя. Возвращает true, если совпадает.
Login() Устанавливает токен аутентификации и выполняет вход пользователя.
Logout() Удаляет токен аутентификации и выполняет выход пользователя.
RequireAuthenticatedUser() Устанавливает HTTP-статус 401 (Unauthorized), если пользователь не аутентифицирован.
RequireRoles() Устанавливает HTTP-статус 401 (Unauthorized), если текущий пользователь не является членом указанной роли.
RequireUser() Устанавливает HTTP-статус 401 (Unauthorized), если текущий пользователь не является пользователем с указанным именем пользователя.
ResetPassword() Если токен сброса пароля действителен, изменяет пароль пользователя на новый пароль.
UserExists() Проверяет, существует ли указанный пользователь.


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

Name Значение
Класс WebMatrix.WebData.WebSecurity
Пространство имён WebMatrix.WebData
Сборка WebMatrix.WebData.dll


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

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

В корневом каталоге вашего веб-сайта создайте страницу с именем_AppStart.cshtml. Страницу (если она уже существует, отредактируйте страницу напрямую).

Скопируйте следующий код в файл:

_AppStart.cshtml

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

Приведенный выше код будет выполняться при каждом запуске веб-сайта (приложения). Он инициализирует базу данных WebSecurity.

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

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

"UserId"— это имя столбца, содержащего идентификатор пользователя (первичный ключ).

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

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

lamp Хотяtrueозначает автоматическое создание базы данныхTable, но база данных не будет создана автоматически. Поэтому база данных должна существовать.


База данных WebSecurity

UserProfileТаблица создаёт и сохраняет запись для каждого пользователя с идентификатором пользователя (первичный ключ) и именем пользователя (email):

UserId Электронная почта
1 [email protected]
2 [email protected]
3 [email protected]

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

Подробности следующие (некоторые столбцы не отображаются):

Пользователь
Id
Создайте
Date
Confirmation
Токен
Is
Confirmed
Last
Password
Failure
Password Password
Change
1 12.04.2012 16:12:17 NULL True NULL AFNQhW.... 12.04.2012 16:12:17

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


Конфигурация Simple Membership

При использовании объекта WebSecurity, если ваш сайт не настроен на использование системы членства ASP.NET Web PagesSimpleMembership, может возникнуть ошибка.

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

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


Другие расширения