2011-03-13 25 views
8

Plataforma de codificación: ASP.NET 4.0 Webforms con C#Cómo bloquear el usuario mediante autenticación de formularios

Tengo dos roles admin y member.
En mi aplicación, el administrador puede manipular la mayoría de los datos de los miembros.
Sé que en la autenticación de formularios un usuario puede ser desbloqueado como,

  MembershipUser user = Membership.GetUser(clickeduserName); 
      user.UnlockUser(); 
      Membership.UpdateUser(user); 

Mis preguntas son,

  1. Cómo bloquear un usuario en la autenticación de formularios?
  2. ¿Por qué MembershipUser.IsLockedOut Property se establece como ReadOnly?
  3. ¿No es la forma correcta para LockOut personas como administrador?

Respuesta

5

Hay algunas opciones que se mencionan aquí: http://forums.asp.net/t/1435151.aspx

que varían de usar IsApproved (ajustable) en lugar de IsLockedOut a ensuciar con la base de datos SQL subyacente para establecer el indicador de bloqueo.

+0

gracias por el enlace. cubre las opciones. – naveen

+1

Hombre: Microsoft es tan tonto a veces con sus marcos. – Flea

3

Extracto de MSDN:

Normalmente, el usuario de LockedOut son automáticamente cuando el MaxInvalidPasswordAttempts se alcanza dentro de la PasswordAttemptWindow.

Los usuarios también pueden ser bloqueados si usa la sobrecarga GetPassword o ResetPassword que acepta una respuesta de contraseña y el número de respuestas incorrectas ingresadas por el usuario alcanza el valor de Membresía. MaxInvalidPasswordAttempts dentro del Membership.PasswordAttemptWindow.

Una solución alternativa podría ser el uso de la propiedad IsApproved así:

MembershipUser user = Membership.GetUser(); 
user.IsApproved = false; 
Membership.UpdateUser(user); 
+0

@yetanothercoder .. lo vi más tarde .. pero que no estaba allí antes de que yo comprometí mi edición. :( –

+0

sin problemas :) y sí ... ¡creo que tengo que ir! Está aprobado. – naveen

+0

buena suerte ... :) –

3

usted puede hacer que el bloqueo de usuario (set .IsLockedOut en true) de la siguiente manera:

MembershipUser user = Membership.GetUser("UserToLock");   
    for (int i = 0; i < Membership.MaxInvalidPasswordAttempts; i++) 
    { 
     Membership.ValidateUser(user.UserName, "Not the right password"); 
    } 
Cuestiones relacionadas