Serviços web de autenticação, de perfis e de papel ASP.NET

Novembro 2016



Introdução


Nesta dica, vamos tentar explorar os recursos da plataforma. NET para gerenciar os usuários que vão acessar a um site ASP.NET, para definir os usuários, papéis e direitos de acesso ao nosso site.

Pré-requisito


Nós supomos que nossos leitores têm um mínimo de conhecimento sobre a plataforma .NET e as páginas ASP.NET. Além disso, note-se que nos baseamos no nosso exemplo do Framework.NET 3.5 com o IDE Microsoft Visual Studio 2008.

Criação do projeto e dos elementos a serem explorados


A seguir, nossas opções para a criação do nosso projeto web.

Criação do projeto


Começamos por escolher projeto web do tipo "ASP.NET Web Application". Note-se também a escolha do ". NET Framework 3.5".


Por ora, manteremos as configurações padrão do nosso projeto, sabendo que o aplicativo será executado no Servidor de Desenvolvimento ASP.NET, e não no IIS.

Adicione dois diretórios ao seu aplicativo "News" e "Perguntas" e acrescente um WebForm em cada diretório.

Criação do banco de dados


Para que os componentes .NET possam gerenciar os usuários, papéis e regras de gestão dos direitos de acesso ao seu site, é preciso criar um banco de dados onde eles vão armazenar todas as suas configurações de gerenciamento dos direitos de acesso, vários Providers podem ser utilizados: SqlProvider para os bancos de dados SQL Server, OracleProvider para os bancos de dados Oracle, MySqlProvider para os bancos de dados MySQL, FileProvider para armazenamento em arquivos (XML) e ADPProvider para o Active Directory. Na nossa dica, nós vamos utilizar um banco de dados SQL Server Express.

Vá no diretório C:WindowsMicrosoft.NETFramework e faça uma busca para encontrar o arquivo "aspnet_regsql.exe", execute-o e clique em "Avançar" até a etapa de seleção do servidor, escolha o seu servidor, seu modo de autenticação e o nome do seu banco de dados, que você deseja criar e clique em "Avançar".

Configuração da conexão


Em seu site, abra o seu arquivo "Web.Config" e substitua a etiqueta "ConnectionStrings" pelo que segue, definindo o nome do seu servidor, seu banco de dados e seu fornecedor.

  <connectionStrings> 
     <remove name="LocalSqlServer" /> 
     <add name="LocalSqlServer" connectionString="Data Source=MAC4SQLEXPRESS;Initial Catalog=Test;User Id=sa;Password=sa" 
     providerName="System.Data.SqlClient" /> 
  </connectionStrings>


E substitua o seu modo de autenticação pelo valor "Forms" para poder gerenciar seus usuários, o valor padrão sendo "Windows". Há outra forma de autenticação, que podemos detalhar em outra dica.

<system.web>  
<authentication mode="Forms" /> 
</system.web> 

Definição de papéis e de direitos de acesso


Vá na aba "Project" e "ASP.NET Configuration".


O sistema abrirá a interface de configuração no seu navegador web.

- Clique em: configuração do fornecedor
- Clique em: Selecionar um fornecedor único para todos os dados de gestão de site
- Clique no: nome da sua aplicação

Vá na aba "Segurança"

- Clique em: Ativar os papéis
- Clique em: Criar ou gerenciar os papéis
- Adicione dois papéis "RoleNews" e "RoleQuestions"

Vá na aba "Segurança"

- Clique em: Gerenciar os usuários
- Adicione dois usuários "UtilNews" e "UtilQuestions" e atribuir-lhes os papéis correspondentes

Vá na aba "Segurança" e clique em: Criar regras de acesso. O princípio da gestão dos direitos de acesso é muito simples:


Para criar uma regra de acesso, você deverá escolher um diretório para sua aplicação, depois, um papel, um usuário ou todos os usuários e especificar se você autoriza o acesso a esse diretório, ou não. Após definir todas as regras de acesso, e para assegurar a autenticação dos usuários em seu site, basta adicionar um formulário ou recuperar o nome do usuário e a senha, e configurar com o método:

FormsAuthentication.Authenticate(Login1.UserName, Login1.Password)

Conclusão


Nós tentamos simplificar a utilização do ASP.NET e do Framework.NET (System.Web.Security) que fornecem um conjunto de ferramentas para gerenciar os direitos de acesso em um site. Para entrar em mais detalhes, "MembershipUser", "MembershipProvider", "Membership", "RoleProvider", "ProfileProvider", requerem, cada um , um artigo a parte. Você pode até criar seu próprio Provider herdando uma classe abstrata "MembershipProvider".



Tradução feita por Lucia Maurity y Nouira

Veja também :
Este documento, intitulado « Serviços web de autenticação, de perfis e de papel ASP.NET »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.