Membership Clase

Definición

Valida las credenciales de usuario y administra la configuración del usuario. Esta clase no puede heredarse.

public ref class Membership abstract sealed
public static class Membership
type Membership = class
Public Class Membership
Herencia
Membership

Ejemplos

En el ejemplo de código siguiente se muestra la página de inicio de sesión de una aplicación de ASP.NET configurada para usar la autenticación de formularios y ASP.NET pertenencia. Si las credenciales de usuario proporcionadas no son válidas, se muestra un mensaje al usuario. De lo contrario, el usuario se redirige a la dirección URL solicitada originalmente mediante el RedirectFromLoginPage método .

Note

Los controles de inicio de sesión de ASP.NET (Login, LoginView, LoginStatus, LoginName y PasswordRecovery) encapsula prácticamente toda la lógica necesaria para solicitar credenciales a los usuarios y validar las credenciales en el sistema de pertenencia y se puede usar en lugar de la comprobación mediante programación mediante la clase Membership.

Importante

Este ejemplo contiene un cuadro de texto que acepta la entrada del usuario, que es una amenaza de seguridad potencial. De forma predeterminada, ASP.NET páginas web validan que la entrada del usuario no incluye elementos HTML ni de script. Para obtener más información, consulte Información general sobre vulnerabilidades de seguridad de script.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Login_OnClick(object sender, EventArgs args)
{
   if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
   else
     Msg.Text = "Login failed. Please check your user name and password and try again.";
}


</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub Login_OnClick(sender As Object, args As  EventArgs)

   If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
   Else
     Msg.Text = "Login failed. Please check your user name and password and try again."
   End If

End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>

Comentarios

La clase Membership se usa en aplicaciones de ASP.NET para validar las credenciales de usuario y administrar la configuración de usuario, como contraseñas y direcciones de correo electrónico. La Membership clase se puede usar por sí misma o junto con para FormsAuthentication crear un sistema completo para autenticar a los usuarios de una aplicación web o sitio. El Login control encapsula la Membership clase para proporcionar un mecanismo práctico para validar a los usuarios.

Note

Si no está familiarizado con las características de pertenencia de ASP.NET, consulte Introducción a la pertenencia antes de continuar. Para obtener una lista de otros temas relacionados con la pertenencia, consulte Administración de usuarios mediante pertenencia.

La Membership clase proporciona instalaciones para:

  • Creación de nuevos usuarios.

  • Almacenar información de pertenencia (nombres de usuario, contraseñas, direcciones de correo electrónico y datos auxiliares) en Microsoft SQL Server o en un almacén de datos alternativo.

  • Autenticación de usuarios que visitan el sitio. Puede autenticar a los usuarios mediante programación o puede usar el Login control para crear un sistema de autenticación completo que requiera poco o ningún código.

  • Administración de contraseñas, que incluye la creación, el cambio, la recuperación y el restablecimiento de ellas, etc. Opcionalmente, puede configurar ASP.NET pertenencia para requerir una pregunta de contraseña y responder para autenticar solicitudes de restablecimiento de contraseña o recuperación para los usuarios que han olvidado su contraseña.

Aunque ASP.NET pertenencia es una característica independiente en ASP.NET Para la autenticación, se puede integrar con ASP.NET administración de roles para proporcionar servicios de autorización para su sitio. La pertenencia también se puede integrar con el usuario ASP.NET System.Web.Profile para proporcionar personalización específica de la aplicación que se pueda adaptar a usuarios individuales. Para obtener más información, consulte Understanding Role Management and ASP.NET Profile Properties Overview.

La Membership clase se basa en proveedores de pertenencia para comunicarse con un origen de datos. .NET Framework incluye un SqlMembershipProvider, que almacena información de usuario en un base de datos de Microsoft SQL Server y un ActiveDirectoryMembershipProvider, que permite almacenar información de usuario en un servidor de modo de aplicación (ADAM) Active Directory o Active Directory. También puede implementar un proveedor de pertenencia personalizado para comunicarse con un origen de datos alternativo que puede usar la Membership clase . Los proveedores de pertenencia personalizada heredan la MembershipProvider clase abstracta. Para obtener más información, vea Implementar un proveedor de pertenencia.

De forma predeterminada, ASP.NET pertenencia está habilitada para todas las aplicaciones ASP.NET. El proveedor de pertenencia predeterminado es SqlMembershipProvider y se especifica en la configuración de la máquina con el nombre AspNetSqlProvider. La instancia predeterminada de la SqlMembershipProvider está configurada para conectarse a una instancia local de Microsoft SQL Server.

Puede modificar la configuración predeterminada para especificar un SqlMembershipProvider distinto de la instancia de /AspNetSqlProvider como proveedor predeterminado o especificar una instancia de un proveedor personalizado como proveedor predeterminado para la aplicación de ASP.NET mediante el archivo Web.config. Puede especificar la configuración de pertenencia ASP.NET para la aplicación web mediante la sección de configuración membership del archivo Web.config. Puede usar la subsección proveedores de la sección de pertenencia para especificar un proveedor de pertenencia distinto de uno de los proveedores predeterminados. Por ejemplo, la siguiente sección membership quita los proveedores de pertenencia predeterminados de la configuración actual de la aplicación y agrega un nuevo proveedor con el nombre SqlProvider que se conecta a una instancia de SQL Server denominada AspSqlServer.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=AspSqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
  </connectionStrings>
  <system.web>
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
      <providers>
        <remove name="AspNetSqlProvider" />
        <add name="SqlProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="SqlServices"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="true"
          passwordFormat="Hashed"
          applicationName="/" />
      </providers>
    </membership>
  </system.web>
</configuration>

Propiedades

Nombre Description
ApplicationName

Obtiene o establece el nombre de la aplicación.

EnablePasswordReset

Obtiene un valor que indica si el proveedor de pertenencia actual está configurado para permitir que los usuarios restablezcan sus contraseñas.

EnablePasswordRetrieval

Obtiene un valor que indica si el proveedor de pertenencia actual está configurado para permitir a los usuarios recuperar sus contraseñas.

HashAlgorithmType

Identificador del algoritmo que se usa para aplicar hash a las contraseñas.

MaxInvalidPasswordAttempts

Obtiene el número de intentos de contraseña o respuesta de contraseña no válidos permitidos antes de que el usuario de pertenencia esté bloqueado.

MinRequiredNonAlphanumericCharacters

Obtiene el número mínimo de caracteres especiales que deben estar presentes en una contraseña válida.

MinRequiredPasswordLength

Obtiene la longitud mínima necesaria para una contraseña.

PasswordAttemptWindow

Obtiene el período de tiempo entre el que se realiza un seguimiento de los intentos fallidos consecutivos de proporcionar una contraseña o una respuesta de contraseña válidas.

PasswordStrengthRegularExpression

Obtiene la expresión regular usada para evaluar una contraseña.

Provider

Obtiene una referencia al proveedor de pertenencia predeterminado para la aplicación.

Providers

Obtiene una colección de los proveedores de pertenencia para la aplicación ASP.NET.

RequiresQuestionAndAnswer

Obtiene un valor que indica si el proveedor de pertenencia predeterminado requiere que el usuario responda a una pregunta de contraseña para el restablecimiento y recuperación de contraseñas.

UserIsOnlineTimeWindow

Especifica el número de minutos después de la marca de fecha y hora de la última actividad para un usuario durante el cual el usuario se considera en línea.

Métodos

Nombre Description
CreateUser(String, String, String, String, String, Boolean, MembershipCreateStatus)

Agrega un nuevo usuario con valores de propiedad especificados al almacén de datos y devuelve un parámetro de estado que indica que el usuario se creó correctamente o que se produjo un error en la creación del usuario.

CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus)

Agrega un nuevo usuario con valores de propiedad especificados y un identificador único al almacén de datos y devuelve un parámetro de estado que indica que el usuario se creó correctamente o el motivo por el que se produjo un error en la creación del usuario.

CreateUser(String, String, String)

Agrega un nuevo usuario con una dirección de correo electrónico especificada al almacén de datos.

CreateUser(String, String)

Agrega un nuevo usuario al almacén de datos.

DeleteUser(String, Boolean)

Elimina un usuario de la base de datos.

DeleteUser(String)

Elimina un usuario y los datos de usuario relacionados de la base de datos.

FindUsersByEmail(String, Int32, Int32, Int32)

Obtiene una colección de usuarios de pertenencia, en una página de datos, donde la dirección de correo electrónico contiene la dirección de correo electrónico especificada que debe coincidir.

FindUsersByEmail(String)

Obtiene una colección de usuarios de pertenencia donde la dirección de correo electrónico contiene la dirección de correo electrónico especificada que debe coincidir.

FindUsersByName(String, Int32, Int32, Int32)

Obtiene una colección de usuarios de pertenencia, en una página de datos, donde el nombre de usuario contiene el nombre de usuario especificado que debe coincidir.

FindUsersByName(String)

Obtiene una colección de usuarios de pertenencia donde el nombre de usuario contiene el nombre de usuario especificado que debe coincidir.

GeneratePassword(Int32, Int32)

Genera una contraseña aleatoria de la longitud especificada.

GetAllUsers()

Obtiene una colección de todos los usuarios de la base de datos.

GetAllUsers(Int32, Int32, Int32)

Obtiene una colección de todos los usuarios de la base de datos en páginas de datos.

GetNumberOfUsersOnline()

Obtiene el número de usuarios que actualmente acceden a una aplicación.

GetUser()

Obtiene la información del origen de datos y actualiza la marca de fecha y hora de la última actividad para el usuario de pertenencia que ha iniciado sesión.

GetUser(Boolean)

Obtiene la información del origen de datos para el usuario de pertenencia que ha iniciado sesión actual. Actualiza la marca de fecha y hora de la última actividad para el usuario de pertenencia registrado actual, si se especifica.

GetUser(Object, Boolean)

Obtiene la información del origen de datos del usuario de pertenencia asociado al identificador único especificado. Actualiza la marca de fecha y hora de la última actividad para el usuario, si se especifica.

GetUser(Object)

Obtiene la información del origen de datos del usuario de pertenencia asociado al identificador único especificado.

GetUser(String, Boolean)

Obtiene la información del origen de datos del usuario de pertenencia especificado. Actualiza la marca de fecha y hora de la última actividad para el usuario, si se especifica.

GetUser(String)

Obtiene la información del origen de datos del usuario de pertenencia especificado.

GetUserNameByEmail(String)

Obtiene un nombre de usuario donde la dirección de correo electrónico del usuario coincide con la dirección de correo electrónico especificada.

UpdateUser(MembershipUser)

Actualiza la base de datos con la información del usuario especificado.

ValidateUser(String, String)

Comprueba que el nombre de usuario y la contraseña proporcionados son válidos.

Eventos

Nombre Description
ValidatingPassword

Se produce cuando se crea un usuario, se cambia una contraseña o se restablece una contraseña.

Se aplica a

Consulte también