Membership Clase

Definición

Valida las credenciales del usuario y administra su configuración. 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 .

Nota

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

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 Web Pages valida que los datos proporcionados por el usuario no incluyen elementos HTML ni de script. Para más información, consulte Información general sobre los ataques mediante scripts.

<%@ 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 Membership clase se usa en ASP.NET aplicaciones 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.

Nota

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 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.

  • Administrar contraseñas, lo que incluye la creación, el cambio, la recuperación y el restablecimiento, etc. Opcionalmente, puede configurar ASP.NET pertenencia para requerir una pregunta de contraseña y responder para autenticar solicitudes de recuperación o restablecimiento de contraseña 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 el sitio. La pertenencia también se puede integrar con el usuario System.Web.Profile ASP.NET para proporcionar personalización específica de la aplicación que se pueda adaptar a usuarios individuales. Para más información, consulte Información general sobre la administración de roles y las propiedades de perfil de ASP.NET.

La Membership clase se basa en proveedores de pertenencia para comunicarse con un origen de datos. El .NET Framework incluye un SqlMembershipProvider, que almacena información de usuario en una base de datos de Microsoft SQL Server y , ActiveDirectoryMembershipProviderque permite almacenar información de usuario en un servidor de Active Directory o modo de aplicación de Active Directory (ADAM). 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, consulte Implementación de 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 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 AspNetSqlProvider instancia 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 configuración de pertenencia del archivo Web.config. Puede usar la subsección providers 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 de pertenencia quita los proveedores de pertenencia predeterminados de la configuración de la aplicación actual y agrega un nuevo proveedor con un nombre de que se conecta a una instancia de SqlProvider 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

ApplicationName

Obtiene o establece el nombre de la aplicación.

EnablePasswordReset

Obtiene un valor que indica si se configura el proveedor de pertenencia actual para permitirles a los usuarios restablecer sus contraseñas.

EnablePasswordRetrieval

Obtiene un valor que indica si se configura el proveedor de pertenencia actual para permitirles a los usuarios recuperar sus contraseñas.

HashAlgorithmType

Identificador del algoritmo utilizado para aplicar un algoritmo hash a las contraseñas.

MaxInvalidPasswordAttempts

Obtiene el número de intentos de contraseña o respuesta de contraseña no válidos que se permiten antes de bloquear al usuario de pertenencia.

MinRequiredNonAlphanumericCharacters

Obtiene el número mínimo de caracteres especiales que debe contener una contraseña válida.

MinRequiredPasswordLength

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

PasswordAttemptWindow

Obtiene la ventana de tiempo durante el que se realiza un seguimiento de los intentos incorrectos consecutivos para proporcionar una contraseña o respuesta de contraseña válida.

PasswordStrengthRegularExpression

Obtiene la expresión regular utilizada 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 necesita que el usuario responda una pregunta de la contraseña para restablecerla y recuperarla.

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 éste se considera que está en línea.

Métodos

CreateUser(String, String)

Agrega un nuevo usuario al origen de datos.

CreateUser(String, String, String)

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

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

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

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

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

DeleteUser(String)

Elimina un usuario y cualquier dato del usuario relacionado de la base de datos.

DeleteUser(String, Boolean)

Elimina a un usuario de la base de datos.

FindUsersByEmail(String)

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

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 necesita coincidir.

FindUsersByName(String)

Obtiene una colección de usuarios de pertenencia donde el nombre de usuario contiene el nombre de usuario especificado para su coincidencia.

FindUsersByName(String, Int32, Int32, Int32)

Obtiene una colección de usuarios de pertenencia, en una página de datos, cuyo 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 en 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 tienen acceso a una aplicación.

GetUser()

Recibe 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 la sesión.

GetUser(Boolean)

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

GetUser(Object)

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

GetUser(Object, Boolean)

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

GetUser(String)

Recibe la información del origen de datos para el usuario de pertenencia especificado.

GetUser(String, Boolean)

Recibe la información del origen de datos para el usuario de pertenencia especificado. Actualiza la marca de fecha y hora de la última actividad para el usuario, si se ha 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 correspondiente al usuario especificado.

ValidateUser(String, String)

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

Eventos

ValidatingPassword

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

Se aplica a

Consulte también