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