Веб-страницы ASP.NET — объект WebSecurity
Описание
Объект WebSecurity обеспечивает безопасность и проверку подлинности для приложений веб-страниц ASP.NET.
С помощью объекта WebSecurity вы можете создавать учетные записи пользователей, входить и выходить из системы, сбрасывать или изменять пароли и многое другое.
Справочник по объектам WebSecurity — свойства
Properties | Description |
---|---|
CurrentUserId | Gets the ID for the current user |
CurrentUserName | Gets the name of the current user |
HasUserId | Returns true if the current has a user ID |
IsAuthenticated | Returns true if the current user is logged in |
Справочник по объектам WebSecurity — методы
Method | Description |
---|---|
ChangePassword() | Changes the password for a user |
ConfirmAccount() | Confirms an account using a confirmation token |
CreateAccount() | Creates a new user account |
CreateUserAndAccount() | Creates a new user account |
GeneratePasswordResetToken() | Generates a token that can be sent to as user by email |
GetCreateDate() | Gets the time the specified membership was created |
GetPasswordChangeDate() | Gets the date and time when password was changed |
GetUserId() | Gets a user ID from a user name |
InitializeDatabaseConnection() | Initializes the WebSecurity system (database) |
IsConfirmed() | Checks if a user is confirmed |
IsCurrentUser() | Checks if the current user matches a user name |
Login() | Logs the user in by setting a token in the cookie |
Logout() | Logs the user out by removing the token cookie |
RequireAuthenticatedUser() | Exits the page if the user is not an authenticated user |
RequireRoles() | Exits the page if the user is not a part of the specified roles |
RequireUser() | Exits the page if the user is not the specified user |
ResetPassword() | Changes a user's password using a token |
UserExists() | Checks if a given user exists |
Инициализация базы данных WebSecurity
Вы должны создать или инициализировать базу данных WebSecurity, прежде чем сможете использовать объект WebSecurity в своем коде.
В корне вашего веб-сайта создайте страницу (или отредактируйте страницу) с именем _AppStart.cshtml .
Поместите следующий код внутрь файла:
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile",
"UserId", "Email", true);
}
Приведенный выше код будет выполняться каждый раз при запуске веб-сайта (приложения). Он инициализирует базу данных WebSecurity.
«Пользователи» — это имя базы данных WebSecurity (Users.sdf).
«UserProfile» — это имя таблицы базы данных, содержащей информацию о профиле пользователя.
«UserId» — это имя столбца, содержащего идентификаторы пользователей (первичный ключ).
«Электронная почта» — это имя столбца, содержащего имена пользователей.
Последний параметр true — это логическое значение, указывающее, что профиль пользователя и таблицы членства должны создаваться автоматически, если они не существуют, в противном случае — false .
Хотя значение true указывает на автоматическое создание таблиц базы данных, сама база данных не будет создана автоматически. Он должен существовать.
База данных веб-безопасности
Таблица UserProfile содержит одну запись для каждого пользователя с идентификатором пользователя (первичный ключ) и именем пользователя (электронная почта):
UserId | |
---|---|
1 | [email protected] |
2 | [email protected] |
3 | [email protected] |
Таблица Membership будет содержать информацию о членстве о том, когда был создан пользователь и было ли (и когда) подтверждено членство.
Примерно так (некоторые столбцы не показаны):
User Id |
Create Date |
Confirmation Token |
Is Confirmed |
Last Password Failure |
Password | Password Change |
---|---|---|---|---|---|---|
1 | 12.04.2012 16:12:17 | NULL | True | NULL | AFNQhWfy.... | 12.04.2012 16:12:17 |
Простая конфигурация членства
Вы можете получить ошибки при использовании объекта WebSecurity, если ваш сайт не настроен на использование системы членства ASP.NET Web Pages SimpleMembership .
Это может произойти, если сервер хостинг-провайдера настроен иначе, чем ваш локальный сервер. Чтобы исправить это, добавьте следующий элемент в файл Web.config сайта:
<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>