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。
| Хотя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 вашего веб-сайта:
<add key="enableSimpleMembership" value="true" />
</appSettings>
Другие расширения