Membership Classe

Definição

Valida credenciais do usuário e gerencia configurações do usuário. Essa classe não pode ser herdada.

public ref class Membership abstract sealed
public static class Membership
type Membership = class
Public Class Membership
Herança
Membership

Exemplos

O exemplo de código a seguir mostra a página de logon de um aplicativo ASP.NET configurado para usar a autenticação de formulários e ASP.NET associação. Se as credenciais de usuário fornecidas forem inválidas, uma mensagem será exibida para o usuário. Caso contrário, o usuário será redirecionado para a URL solicitada originalmente usando o RedirectFromLoginPage método .

Observação

O ASP.NET controles de logon (Login, LoginView, LoginStatus, LoginNamee PasswordRecovery) encapsulam praticamente toda a lógica necessária para solicitar credenciais aos usuários e validar as credenciais no sistema de associação e podem ser usadas no lugar da verificação programática usando a Membership classe .

Importante

Este exemplo contém uma caixa de texto que aceita a entrada do usuário, que é uma possível ameaça à segurança. Por padrão, ASP.NET páginas da Web validam que a entrada do usuário não inclui elementos html ou script. Para obter mais informações, consulte Visão geral de explorações 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>

Comentários

A Membership classe é usada em aplicativos ASP.NET para validar as credenciais do usuário e gerenciar configurações de usuário, como senhas e endereços de email. A Membership classe pode ser usada por conta própria ou em conjunto com o FormsAuthentication para criar um sistema completo para autenticar usuários de um aplicativo Web ou site. O Login controle encapsula a Membership classe para fornecer um mecanismo conveniente para validar usuários.

Observação

Se você não estiver familiarizado com os recursos de associação do ASP.NET, consulte Introdução à Associação antes de continuar. Para obter uma lista de outros tópicos relacionados à associação, consulte Gerenciando usuários usando associação.

A Membership classe fornece instalações para:

  • Criar usuários.

  • Armazenar informações de associação (nomes de usuário, senhas, endereços de email e dados de suporte) no Microsoft SQL Server ou em um armazenamento de dados alternativo.

  • Autenticar usuários que visitam seu site. Você pode autenticar usuários programaticamente ou pode usar o Login controle para criar um sistema de autenticação completo que requer pouco ou nenhum código.

  • Gerenciar senhas, o que inclui criar, alterar, recuperar e redefini-las e assim por diante. Opcionalmente, você pode configurar ASP.NET associação para exigir uma pergunta e resposta de senha para autenticar solicitações de redefinição ou recuperação de senha para usuários que esqueceram sua senha.

Embora ASP.NET associação seja um recurso autônomo no ASP.NET Para autenticação, ele pode ser integrado com ASP.NET gerenciamento de funções para fornecer serviços de autorização para seu site. A associação também pode ser integrada ao usuário System.Web.Profile ASP.NET para fornecer personalização específica do aplicativo que pode ser adaptada a usuários individuais. Para obter detalhes, consulte Understanding Role Management and ASP.NET Profile Properties Overview( Noções básicas sobre gerenciamento de funções e visão geral de propriedades de perfil de ASP.NET).

A Membership classe depende de provedores de associação para se comunicar com uma fonte de dados. O .NET Framework inclui um SqlMembershipProvider, que armazena informações do usuário em um banco de dados do Microsoft SQL Server e um ActiveDirectoryMembershipProvider, que permite armazenar informações do usuário em um servidor do Active Directory ou do Modo de Aplicativo do Active Directory (ADAM). Você também pode implementar um provedor de associação personalizado para se comunicar com uma fonte de dados alternativa que pode ser usada pela Membership classe . Provedores de associação personalizados herdam a MembershipProvider classe abstrata. Para obter mais informações, consulte Implementando um provedor de associação.

Por padrão, ASP.NET associação está habilitada para todos os aplicativos ASP.NET. O provedor de associação padrão é o SqlMembershipProvider e é especificado na configuração do computador com o nome AspNetSqlProvider. A instância padrão do SqlMembershipProvider é configurada para se conectar a uma instância local do Microsoft SQL Server.

Você pode modificar as configurações padrão para especificar uma SqlMembershipProvider diferente da AspNetSqlProvider instância como o provedor padrão ou especificar uma instância de um provedor personalizado como o provedor padrão para seu aplicativo ASP.NET usando o arquivo Web.config. Você pode especificar a configuração de associação ASP.NET para seu aplicativo Web usando a seção de configuração de associação no arquivo Web.config. Você pode usar a subseção de provedores da seção de associação para especificar um provedor de associação diferente de um dos provedores padrão. Por exemplo, a seção de associação a seguir remove os provedores de associação padrão da configuração de aplicativo atual e adiciona um novo provedor com um nome de SqlProvider que se conecta a uma instância do SQL Server chamada 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>  

Propriedades

ApplicationName

Obtém ou define o nome do aplicativo.

EnablePasswordReset

Obtém um valor que indica se o provedor de associação atual foi configurado para permitir que os usuários redefinam suas senhas.

EnablePasswordRetrieval

Obtém um valor que indica se o provedor de associação atual foi configurado para permitir que os usuários recuperem suas senhas.

HashAlgorithmType

O identificador do algoritmo usado para aplicar hash em senhas.

MaxInvalidPasswordAttempts

Obtém o número de tentativas de senhas inválidas ou de respostas de senha permitidas antes do usuário associado ser bloqueado.

MinRequiredNonAlphanumericCharacters

Obtém o número mínimo de caracteres especiais que devem estar presentes em uma senha válida.

MinRequiredPasswordLength

Obtém o comprimento mínimo necessário para uma senha.

PasswordAttemptWindow

Obtém a janela de tempo entre a qual as tentativas com falha consecutivas de fornecer uma senha ou uma resposta de senha válida são rastreadas.

PasswordStrengthRegularExpression

Obtém a expressão regular usada para avaliar uma senha.

Provider

Obtém uma referência ao provedor de associação padrão para o aplicativo.

Providers

Obtém uma coleção de provedores de associação para o aplicativo ASP.NET.

RequiresQuestionAndAnswer

Obtém um valor que indica se o provedor de associação padrão exige que o usuário responda uma pergunta de senha para recuperação e redefinição de senha.

UserIsOnlineTimeWindow

Especifica o número de minutos em que o usuário é considerado online após o carimbo de data/hora de sua última atividade.

Métodos

CreateUser(String, String)

Adiciona um novo usuário ao armazenamento de dados.

CreateUser(String, String, String)

Adiciona um novo usuário com um endereço de email especificado ao armazenamento de dados.

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

Adiciona um novo usuário com valores de propriedade especificados para o armazenamento de dados e retorna um parâmetro de status que indica que o usuário foi criado com êxito ou o motivo da falha na criação do usuário.

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

Adiciona um novo usuário com valores de propriedade especificados e um identificador exclusivo para o armazenamento de dados e retorna um parâmetro de status que indica que o usuário foi criado com êxito ou o motivo da falha na criação do usuário.

DeleteUser(String)

Exclui um usuário e os dados de usuário relacionados do banco de dados.

DeleteUser(String, Boolean)

Exclui um usuário do banco de dados.

FindUsersByEmail(String)

Obtém uma coleção de usuários associados na qual o endereço de email contém o endereço de email especificado a ser correspondido.

FindUsersByEmail(String, Int32, Int32, Int32)

Obtém uma coleção de usuários associados em uma página de dados, em que o endereço de email contém o endereço de email de correspondência especificado.

FindUsersByName(String)

Obtém uma coleção de usuários associados em que o nome de usuário contém o nome de usuário especificado para corresponder.

FindUsersByName(String, Int32, Int32, Int32)

Obtém uma coleção de usuários de associação, em uma página de dados, em que o nome de usuário contém o nome de usuário especificado com o qual combinar.

GeneratePassword(Int32, Int32)

Gera uma senha aleatória do tamanho especificado.

GetAllUsers()

Obtém uma coleção de todos os usuários no banco de dados.

GetAllUsers(Int32, Int32, Int32)

Obtém uma coleção de todos os usuários no banco de dados nas páginas de dados.

GetNumberOfUsersOnline()

Obtém o número de usuários que estão acessando um aplicativo no momento.

GetUser()

Obtém as informações da fonte de dados e atualiza a atividade de último carimbo de data/hora para o usuário associado atualmente conectado.

GetUser(Boolean)

Obtém as informações da fonte de dados para o usuário associado atualmente conectado. Atualiza o carimbo de data/hora da última atividade do usuário associado atualmente conectado, se especificado.

GetUser(Object)

Obtém as informações da fonte de dados do usuário associado relativo ao identificador exclusivo especificado.

GetUser(Object, Boolean)

Obtém as informações da fonte de dados do usuário associado relativo ao identificador exclusivo especificado. Atualiza o carimbo de data/hora da última atividade para o usuário especificado, se especificado.

GetUser(String)

Obtém informações da fonte de dados do usuário associado especificado.

GetUser(String, Boolean)

Obtém informações da fonte de dados do usuário associado especificado. Atualiza o carimbo de data/hora da última atividade para o usuário especificado, se especificado.

GetUserNameByEmail(String)

Obtém um nome de usuário em que o endereço de email do usuário corresponde ao endereço de email especificado.

UpdateUser(MembershipUser)

Atualiza o banco de dados com as informações do usuário especificado.

ValidateUser(String, String)

Verifica se o nome de usuário e a senha fornecidos são válidos.

Eventos

ValidatingPassword

Ocorre quando um usuário é criado, uma senha é alterada ou uma senha é redefinida.

Aplica-se a

Confira também