Pregunta

Estoy usando la aplicación de ejemplo mvc de asp.net y la he ampliado un poco. Utilizo la membresía asp.net para iniciar sesión y registrarme para los usuarios.

Ahora quiero cambiarlo para que cuando la gente se registre, en lugar de poder iniciar sesión al instante, vaya a algún estado en el que un administrador tenga que aprobarlo. Una vez que se produce esta aprobación, pueden iniciar sesión.

¿Hay algo integrado en la membresía de asp.net que me ayude a hacer esto o tengo que programarlo desde cero usando mi propia implementación?

Tengo algunas ideas y no creo que esto sea una ciencia de cohetes, pero no quiero reinventar la rueda, ya que quiero enviar esto lo antes posible.

¿Fue útil?

Solución

La clase MembershipUser tiene una propiedad aprobada por IsA. Puede establecerlo en falso al crear un nuevo usuario y luego establecerlo en verdadero cuando el administrador lo apruebe. Debe llamar al método Membershi.UpdateUser (usuario) después de configurar la propiedad.

Otros consejos

Aquí hay algo de código para crear una colección de usuarios no aprobados que se pueden usar como fuente de datos de un control de datos como GridView , DataList o Repetidor :

MembershipUserCollection users = Membership.GetAllUsers();

MembershipUserCollection unapprovedUsers = new MembershipUserCollection();

foreach (MembershipUser u in users)
{
    if (!u.IsApproved)
        unapprovedUsers.Add(u);
}

La clase MembershipUser tiene un IsApproved propiedad, y durante la creación del usuario puede usar una de las sobrecargas en la Membresía. CreateUser que permite establecer ese indicador. Lamentablemente, no hay una manera fácil de decir "Mostrarme a todos los usuarios que aún no están validados".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top