Na versão 2.0 do ASP.NET, com a grande gama de controles a nosso dispor para melhor trabalharmos o front-end (UI), temos ainda classes para manipular os usuários em nossa Base de Dados. Classes que utilizam o Provider Model Design Pattern, e assim conseguÃmos ter um código genérico, independentemente de que Banco de Dados (ou qualquer outro tipo de repositório) estamos a utilizar na nossa aplicação.
 Assim como o Profile, o ASP.NET também utiliza o Providers para gerenciar a segurança, sendo eles, dois providers: MembershipProvider e o RoleProvider. O MembershipProvider é utilizado para gerir os usuários (armazenando, criando, excluindo e alterando) e passwords. O RoleProvider é utilizado para gerenciar as Roles (Regras) dos usuários dentro da aplicação. 
 Para versão Beta 1, o Provider padrão é o AccessMembershipProvider. Como o Microsoft Access não suporta um grande volume de usuários “pendurados”, ele foi substituÃdo pelo SqlMembershipProvider na versão Beta 2 do Visual Studio .NET 2005, e como o próprio nome diz, é voltado para o Banco de Dados SQL Server. Se ainda há alguém que pretende utilizar o AccessMembershipProvider, é possÃvel encontrá-lo neste endereço. 				
 Para utilizar o SqlMembershipProvider, é necessário termos dentro do SQL Server os objetos (Tabelas e Stored Procedures) necessários para que seja possÃvel o uso deste Provider. Junto ao Microsoft .NET que é instalado na máquina, existe uma ferramenta chamada “aspnet_regsql.exe”, que faz todo este processo automaticamente, onde apenas precisamos informar o servidor e o Banco de Dados onde serão instalados estes objetos.
 Depois do provider escolhido, ainda é necessário definirmos no arquivo Web.Config qual será o provider a ser utilizado.
Nota: É importante mencionar que dentro do .NET Framework, também já temos implementada a classe ActiveDirectoryMembershipProvider, que faz o mesmo trabalho, mas agora, utilizando o Active Directory como repositório. 				
Os Controles
 O ASP.NET 2.0 contém um conjunto completo de controles para trabalharmos com a segurança, contendo inclusive uma Tab chamada Security dentro da ToolBox do Visual Studio .NET 2005 para armazenar estes controles. Vamos neste artigo, analisar superficialmente alguns destes novos controles, como por exemplo o ChangePassword, CreateUser, LogIn, LoginView e o PasswordRecovery. Estes controles também tem a grande vantagem de trabalharem diretamente com o Provider que definimos no arquivo Web.Config, e assim, fazem todo o processo, inclusive as queries necessárias para manipular os dados na Base de Dados. 				 
 
 
- ChangePassword
 
- CreateUser
 
- LogIn
 
- LoginView
 
- PasswordRecovery
 
 
A classe Membership 
 Como já vimos anterioramente, está é uma classe abstrata, contendo uma série de métodos compartilhados. Esta classe recebe em runtime a instância da classe concreta, ou seja, do provider que definimos o arquivo Web.Config. Claro que estes métodos serão invocados da classe concreta, pois é onde se encontram os métodos implementados para uma Base de Dados especÃfica.
| Membro | 
Descrição | 
   CreateUser | 
Cria um novo usuário. | 
   DeleteUser | 
Exclui um usuário. | 
   FindUsersByEmail | 
Resgata os usuários baseando-se em um endereço de email. | 
   FindUsersByName | 
Resgata os usuários baseando-se em um userName. | 
   GeneratePassword | 
Gera um password aleatório. | 
   GetAllUsers | 
Retorna todos os usuários. | 
   GetNumberOfUsersOnline | 
Retorna um número inteiro representando todos os usuários online. | 
   GetUser | 
Resgata um determinado usuário baseando-se em um userName. | 
   GetUsernameByEmail | 
Resgata um determinado usuário baseando-se em um endereço de email. | 
   UpdateUser | 
Atualiza as informações de um determinado usuário. | 
   ValidateUser | 
Retorna um valor booleano indicando se o usuário existe ou não. | 
artigo completo