Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. |
Traducción
Original
|
Membership (Clase)
Valida las credenciales del usuario y administra su configuración. Esta clase no puede heredarse.
Ensamblado: System.Web (en System.Web.dll)
El tipo Membership expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
|
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 no válida o de respuesta a la contraseña incorrecta permitidos antes de bloquear al usuario de pertenencia. |
|
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 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. |
| Nombre | Descripción | |
|---|---|---|
|
CreateUser(String, String) | Agrega un nuevo usuario al origen de datos. |
|
CreateUser(String, String, String) | Agrega a un nuevo usuario con una dirección de correo electrónico especificada al almacén de datos. |
|
CreateUser(String, String, String, String, String, Boolean, MembershipCreateStatus) | Agrega un nuevo usuario con los valores especificados de las propiedades 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 especificados de las propiedades 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 electrónico contiene la dirección de correo electrónico especificada que debe 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 debe 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 | 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(String) | Recibe la información del origen de datos para el usuario de pertenencia 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, 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 | Obtiene un nombre de usuario cuya dirección de correo electrónico coincide con la dirección de correo electrónico especificada. |
|
UpdateUser | Actualiza la base de datos con la información correspondiente al usuario especificado. |
|
ValidateUser | Comprueba que el nombre de usuario y la contraseña proporcionados son válidos. |
| Nombre | Descripción | |
|---|---|---|
|
ValidatingPassword | Se produce cuando se crea un usuario, o cuando se cambia o se restablece una contraseña. |
La clase Membership se utiliza en aplicaciones ASP.NET para validar las credenciales del usuario y administrar la configuración del usuario como contraseñas y direcciones de correo electrónico. La clase Membership se puede utilizar sola o con la clase FormsAuthentication con objeto de crear un sistema completo para autenticar a los usuarios de una aplicación o sitio Web. El control Login encapsula la clase Membership 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, vea Introducción a la pertenencia antes de continuar. Para obtener una lista de otros temas relacionados con la pertenencia, vea Administrar usuarios mediante pertenencia. |
La clase Membership proporciona los medios para:
-
Crear nuevos usuarios.
-
Almacenar la información de pertenencia (nombres de usuario, contraseñas, direcciones de correo electrónico y datos compatibles) en Microsoft SQL Server o en un almacén de datos alternativo.
-
Autenticar a los usuarios que visitan el sitio. Mediante programación puede autenticar a los usuarios o puede utilizar el control Login para crear un sistema de autenticación completo que requiere poco o ningún código.
-
Administrar contraseñas que incluyen su creación, cambio, recuperación y restablecimiento, etc. Opcionalmente puede configurar la pertenencia a ASP.NET para que requiera una pregunta y una respuesta de contraseña para autenticar las peticiones de restablecimiento o recuperación de la contraseña para aquellos usuarios que la hayan olvidado.
Aunque la pertenencia a ASP.NET es una característica independiente de ASP.NET para la autenticación, se puede integrar con la administración de funciones de ASP.NET para proporcionar los servicios de la autorización para su sitio. La pertenencia también se puede integrar con el objeto System.Web.Profile del usuario de ASP.NET para proporcionar una personalización específica de la aplicación que se puede diseñar para usuarios individuales. Para obtener información detallada, vea Descripción de la administración de roles y Información general sobre las propiedades de perfil de ASP.NET.
La clase Membership confía en proveedores de pertenencia para comunicarse con orígenes de datos. .NET Framework incluye un SqlMembershipProvider, que almacena información de usuario en una base de datos de Microsoft SQL Server, y un ActiveDirectoryMembershipProvider, que le permite almacenar información de usuario en un servidor Active Directory o Active Directory Application Mode (ADAM). También puede implementar un proveedor de pertenencia personalizado para comunicar con un origen de datos alternativo que puede utilizar la clase Membership. Los proveedores de pertenencia personalizados heredan la clase abstracta MembershipProvider. Para obtener más información, vea Implementar un proveedor de pertenencias.
De manera predeterminada, la pertenencia a ASP.NET se habilita para todas las aplicaciones ASP.NET. El proveedor de pertenencia predeterminado es la clase SqlMembershipProvider y se especifica en la configuración del equipo con el nombre AspNetSqlProvider. La instancia predeterminada de la clase SqlMembershipProvider se configura para conectar a una instancia local de Microsoft SQL Server.
Puede modificar la configuración predeterminada para especificar otra clase SqlMembershipProvider distinta de la instancia de AspNetSqlProvider como el proveedor predeterminado o especifique una instancia de un proveedor personalizado como el proveedor predeterminado para su aplicación ASP.NET utilizando el archivo Web.config. Puede especificar la configuración de pertenencia de ASP.NET para la aplicación Web utilizando la sección de configuración de membership en el archivo Web.config. Puede utilizar la subsección providers de la sección membership para especificar un proveedor de pertenencia distinto de uno de los proveedores predeterminados. Por ejemplo, la sección membership siguiente quita los proveedores de pertenencia predeterminados de la configuración de la aplicación actual y agrega un nuevo proveedor con un nombre de SqlProvider que 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>
En el ejemplo de código siguiente se muestra la página de inicio de sesión para una aplicación ASP.NET configurada para utilizar la autenticación de formularios y la pertenencia ASP.NET. Si las credenciales proporcionadas por el usuario no son válidas, se muestra un mensaje al usuario. De lo contrario, el usuario se redirige a la dirección URL originalmente solicitada mediante el método RedirectFromLoginPage.
Nota
|
|---|
|
Los controles de inicio de sesión ASP.NET (Login, LoginView, LoginStatus, LoginNamey PasswordRecovery) encapsulan virtualmente toda la lógica requerida para solicitar las credenciales a los usuarios y validarlas en el sistema de pertenencia y se puede utilizar en lugar de la comprobación de programación mediante la clase Membership. |
Nota sobre la seguridad
|
|---|
|
En este ejemplo hay un cuadro de texto que acepta datos del usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, las páginas web ASP.NET validan los datos escritos por el usuario para comprobar que no incluyen script ni elementos HTML. Para obtener más información, vea 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>
Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Nota
Nota sobre la seguridad