Páginas web ASP.NET - Objeto WebSecurity
Descripción
El objeto WebSecurity proporciona seguridad y autenticación para las aplicaciones de páginas web ASP.NET.
Con el objeto WebSecurity puede crear cuentas de usuario, iniciar y cerrar sesión de usuarios, restablecer o cambiar contraseñas y más.
Referencia de objetos de WebSecurity - Propiedades
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 |
Referencia de objetos WebSecurity - Métodos
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 |
Inicializar la base de datos de WebSecurity
Debe crear o inicializar una base de datos de WebSecurity antes de poder usar el objeto WebSecurity en su código.
En la raíz de su web, cree una página (o edite la página) llamada _AppStart.cshtml .
Ponga el siguiente código dentro del archivo:
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile",
"UserId", "Email", true);
}
El código anterior se ejecutará cada vez que se inicie el sitio web (aplicación). Inicializa la base de datos de WebSecurity.
"Usuarios" es el nombre de la base de datos de WebSecurity (Users.sdf).
"UserProfile" es el nombre de la tabla de la base de datos que contiene la información del perfil de usuario.
"UserId" es el nombre de la columna que contiene los ID de usuario (clave principal).
"Correo electrónico" es el nombre de la columna que contiene los nombres de usuario.
El último parámetro true es un valor booleano que indica que el perfil de usuario y las tablas de pertenencia deben crearse automáticamente si no existen; de lo contrario, false .
Aunque verdadero indica la creación automática de las tablas de la base de datos, la base de datos en sí no se creará automáticamente. debe existir
La base de datos de seguridad web
La tabla UserProfile contiene un registro para cada usuario, con un ID de usuario (clave principal) y el nombre del usuario (correo electrónico):
UserId | |
---|---|
1 | [email protected] |
2 | [email protected] |
3 | [email protected] |
La tabla Membresía contendrá información de membresía sobre cuándo se creó el usuario y si (y cuándo) se confirmó la membresía.
Muy parecido a esto (algunas columnas no se muestran):
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 |
Configuración de membresía simple
Es posible que obtenga errores al usar el objeto WebSecurity, si su sitio no está configurado para usar el sistema de membresía de ASP.NET Web Pages SimpleMembership .
Esto puede ocurrir si el servidor de un proveedor de alojamiento está configurado de manera diferente a su servidor local. Para solucionar esto, agregue el siguiente elemento al archivo Web.config del sitio:
<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>