ASP.NET Web Pages - Objeto WebSecurity

Descripción

El objeto WebSecurity proporciona seguridad y autenticación para aplicaciones de ASP.NET Web Pages.

A través del objeto WebSecurity, puede crear cuentas de usuarios, iniciar sesión y cerrar sesión, restablecer o cambiar contraseñas, etc.

Manual de Referencia del Objeto WebSecurity - Atributos

Atributo Descripción
CurrentUserId Obtiene el ID del usuario actual.
CurrentUserName Obtiene el nombre del usuario actual.
HasUserId Obtiene el valor que indica si el usuario actual tiene ID de usuario. Si es así, devuelve true.
IsAuthenticated Obtiene el estado de autenticación del usuario actual.

Manual de Referencia del Objeto WebSecurity - Métodos

Atributo Descripción
ChangePassword() Cambia la contraseña del usuario.
ConfirmAccount() Confirma que la cuenta es válida y activa la cuenta.
CreateAccount() Crea una nueva cuenta de usuario.
CreateUserAndAccount() Crea una nueva cuenta de usuario.
GeneratePasswordResetToken() Genera un token de restablecimiento de contraseña que se puede enviar por correo electrónico al usuario.
GetCreateDate() Devuelve la fecha y hora de creación de la cuenta de membresía especificada.
GetPasswordChangeDate() Devuelve la fecha y hora de la última modificación de la contraseña de la cuenta de membresía especificada.
GetPasswordFailures
SinceLastSuccess()
Devuelve el número de veces que se ha introducido incorrectamente la contraseña desde la última conexión exitosa o la creación de una cuenta de membresía.
GetUserId() Devuelve el ID de usuario basado en el nombre de usuario especificado.
GetUserIdFrom
PasswordResetToken ()
Devuelve el ID de usuario desde el token de restablecimiento de contraseña.
InitializeDatabaseConnection() Inicializa el sistema de membresía conectando a la base de datos que contiene la información del usuario.
IsAccountLockedOut() Indica si la cuenta de membresía especificada ha sido bloqueada debido a un número excesivo de intentos fallidos de contraseña.
IsConfirmed() Devuelve un valor que indica si el usuario ya ha sido confirmado.
IsCurrentUser() Devuelve un valor que indica si el nombre de usuario del usuario que ha iniciado sesión coincide con el nombre de usuario especificado.
Login() Iniciar sesión del usuario.
Logout() Desconectar al usuario.
RequireAuthenticatedUser() Si el usuario no ha sido autenticado, configura el estado HTTP en 401 (no autorizado).
RequireRoles() Si el usuario actual no pertenece al rol especificado, configura el código de estado HTTP en 401.
RequireUser() Si el usuario actual no es el usuario especificado, configura el estado HTTP en 401.
ResetPassword() Restablece la contraseña utilizando el token de restablecimiento de contraseña.
UserExists() Verifica si el usuario existe.

Technical Data

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

Inicializar la base de datos WebSecurity

Antes de usar el objeto WebSecurity, debe crear o inicializar la base de datos WebSecurity.

En el directorio web, crea o edita la página _AppStart.cshtml.

Escribe el siguiente código en este archivo:

_AppStart.cshtml

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

El sitio web ejecuta el código anterior cada vez que se inicia. Inicializa la base de datos WebSecurity.

"Users" es el nombre de la base de datos de WebSecurity (Users.sdf)

"UserProfile" es el nombre de la tabla de base de datos que contiene la información de configuración del usuario.

"UserId" es el nombre de la columna que contiene el ID de usuario (clave principal).

"Correo Electrónico" es el nombre de la columna que contiene el nombre de usuario.

El último parámetro true es un valor lógico que indica que se deben crear las tablas de perfil de usuario y membresía (si no existen), de lo contrario false.

Consejo: A pesar de que true indica la creación automática de tablas de bases de datos, la propia base de datos no se crea automáticamente. Debe existir.

Base de Datos WebSecurity

Cada registro en la tabla UserProfile representa a un usuario, que incluye el ID de usuario (clave principal) y el nombre de usuario (correo electrónico):

UserId Correo Electrónico
1 john@johnson.net
2 peter@peterson.com
3 lars@larson.eut

La tabla Membership contiene información de membresía, como cuándo creó el usuario y si (y cuándo) confirmó la membresía.

Algo así (algunas columnas no se enumeran):

UserId Fecha de Creación Confirmar
Token
¿Es?
Confirmar
Último
Contraseña Incorrecta
Contraseña Cambio de Contraseña
1 12.04.2012 16:12:17 NULL True NULL AFNQhWfy.... 12.04.2012 16:12:17

Notas:Si desea ver todas las columnas y todo el contenido, abra la base de datos a través de WebMatrix y luego revise cada tabla.

Configuración de membresía simple

Si su sitio no está configurado para usar el sistema de membresía SimpleMembership de ASP.NET Web Pages, puede producirse un error al usar el objeto WebSecurity.

Si la configuración del proveedor de host es diferente de su servidor local, se producirá un error. Para resolver este problema, agregue los siguientes elementos al archivo Web.config del sitio:

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