ASP.NET – Membership
Estamos de volta com mais um tutorial sobre ASP.NET. Hoje iremos completar o nosso modelo e tratar dos utilizadores da nossa aplicação. Fiquem atentos e participem neste brainstorming de programação.
No último tutorial ficamos pela construção do modelo, hoje vamos exportar esse modelo para a base de dados.
1.Continuação do modelo de dados
Primeiro temos de criar a base de dados. Para tal precisamos de ter uma versão do SQL Server instalado no computador e ter também o SQL Server Management Studio instalado.
Abrimos o SQL Server Management Studio e criamos uma nova base de dados.
Alteramos o nome para “GoodToWork” e gravamos.
Podemos verificar que a base de dados foi criada com sucesso no SQL Server.
Depois de concluído estes passos vamos ao Visual Studio e no designer gráfico do nosso modelo, clicamos com o botão direito do rato num espaço em branco e escolhemos a opção “Generate Database from model...”
No ecrã seguinte adicionamos uma nova conexão ao SQL Server para a base de dados que acabamos de criar no Management Studio.
No ecrã seguinte escolhemos o servidor e a base de dados, no meu caso o servidor é “.\sqlexpress” e a base de dados “GoodToWork”.
Depois de configurada a ligação, podemos confirmar que está correcta. Este processo irá gerar um ficheiro de “DML” com a extensão “sql”. É através deste ficheiro que iremos criar as tabelas e associações na nossa base de dados. Para executar o ficheiro clicamos num espaço em branco no novo ficheiro e escolhemos a opção “Execute Sql”.
Caso aparece o ecrã, efectuamos de novo a ligação à base de dados. No final da operação deverá aparecer a indicação que foi completada com sucesso.
Para confirmar que correu bem, basta ir ao Management Studio ou no próprio Visual Studio e abrir a base de dados, confirmando que as tabelas já foram criadas.
2. Membership API
O API de Membership do ASP.NET providência um vasto leque de funções para configurar os utilizadores de uma aplicação.
- Possibilidade de criar e apagar utilizadores, quer programaticamente quer através do ASP.NET Web Configuration Utility.
- Possibilidade de fazer reset a passwords, com a possibilidade de enviar automaticamente reset emails para os utilizadores.
- Possibilidade de encontrar utilizadores, como uma lista de utilizadores e os seus detalhes.
- Uma série de controlos já incluídos na framework, que permitem fazer o login e registo de novos utilizadores.
- Configurar grupos de acesso dentro da aplicação, conhecidos por Roles
2.1. Configurar Membership
Por defeito, se não configurarmos o Membership, ao criar utilizadores estes são guardados numa base de dados local dentro da pasta “App_Data” num ficheiro “mdf”.
Para reverter essa situação utilizamos uma ferramenta da framework. Esta ferramenta permite configurar tudo o que é necessário para utilizar o Membership numa base de dados criada por nós. Essa ferramenta pode ser encontrada na pasta “C:\Windows\Microsoft.NET\Framework\v4.0.30319” e chama-se “aspnet_regsql.exe”.
Vamos então executar a aplicação e seguir os passos necessários para costumizar a nossa base de dados.
Depois de executar, podemos verificar que existem novas tabelas com o prefixo “aspnet_”, estas tabelas pertencem ao MemberShip.
2.2. Configurar Connection String e Membership Provider
Depois de termos as tabelas na nossa base de dados, precisamos de configurar o Web.config para que a nossa aplicação saiba onde encontrar o Membership.
A vermelho está a linha que vamos alterar.
Depois da alteração ficará assim.
De seguida vamos criar uma pasta “Admin” no nosso site. Esta pasta irá servir para colocar as páginas que pertençam exclusivamente ao administrador do site.
Depois de criada a pasta, vamos executar a aplicação de configuração do ASP.NET
A figura seguinte mostra a estrutura do nosso site e o local de execução da aplicação de configuração. Vamos executá-la.
A primeira coisa a fazer quando entramos na aplicação é verificar que configuramos bem o Membership provider, fazendo um teste. Se o teste não correr bem é porque temos algo mal configurado no Web.config.
Outra coisa que temos de fazer é ir ao “tab” Security e activar os Roles, no botão “Enable Roles”. Depois de activar, podemos criar novos “Roles”.
Vamos criar o Role “Admin”
Depois de criado o Role, vamos criar um utilizador e associá-lo a esse novo Role
Depois de associado o utilizador ao Role, vamos criar uma nova “Access Rule”. Esta irá ser para a nova pasta Admin que criamos no nosso site.
Esta configuração irá permitir que apenas os utilizadores com o Role Admin possam aceder a esta pasta. Devemos também adicionar uma “Access rule” para que impeça que utilizadores não autenticados acedam à pasta.
Depois de todas estas configurações já podemos entrar no nosso site e fazer login com o utilizador criado, neste caso o Admin. Vamos então fazer o login e preencher os dados do utilizador.
Como podem ver estamos autenticados na aplicação.
Podemos também criar novos utilizadores, acedendo à página de registo.
5. Conclusão
Por hoje damos o tutorial por terminado. Em baixo podem fazer download do projecto (Visual Studio 2010). Caso tenham alguma questão já sabem, deixem um comentário em baixo.
Download: GoodToWork [ 2.25Mb ]
Este artigo tem mais de um ano
Só uma sugestão.
Não esquecer de colocar a tag:
applicationName=”/qq coisa”
Sendo que “qq coisa” naturalmente é um nome a nossa escolha.
Isto permite que todos os users criados aparecem em todas as alturas, senão ao fazer a migração para o servidor todos os users criados desaparecem.
Esta tag permite que possamos ter várias “aplicações” a usar a mesma bd de membership.
Claro que esta questão é apenas uma sugestão…
Viva João,
Brilhante o teu comentário 🙂
Vou falar de todas as configurações para o próximo tutorial. E ia falar precisamente nesse ponto e como é importante, porque como dizes e bem, é necessário colocar a tag “applicationName”, para ser possível continuar com os utilizadores depois de migrar a BD para outro servidor.
Mais uma vez, obrigado pelo comentário.
Cumprimentos.
Antecipei-me um pouco. 🙂
Desculpa ter estragado a “surpresa”. 🙂
Coloquei apenas este comentário pois foi algo que andei a “nora” durante uns tempos a tentar resolver… 🙂
Um abraço, e parabéns pelos excelentes tutoriais que tens publicado.
Boas entradas
Não tem problema nenhum e foi muito bem colocada a questão.
Obrigado, abraço e boas entradas.
Por favor continue com os tutoriais!!
Está muito bom.
Abraços!!
Henrique, você continuou este tutorial em algum outro lugar?
Estava fazendo o passo a passo e, de repente, descobri que ele não acaba.
Alguma chance dele ser concluído?
Abs.
Chegando a este passo “Depois de criado o Role, vamos criar um utilizador e associá-lo a esse novo Role”, onde foi definido os dados que são necessários para o admin?
Cumprimentos
Alguém me sabe pq é que no passo “Depois de configurada a ligação, podemos confirmar que está correcta. Este processo irá gerar um ficheiro de “DML” com a extensão “sql”. É através deste ficheiro que iremos criar as tabelas e associações na nossa base de dados. Para executar o ficheiro clicamos num espaço em branco no novo ficheiro e escolhemos a opção “Execute Sql”.” onde temos de fazer “Execute SQL” no meu caso não me aparece essa mesma opção?
Bem, já encontrei a solução… para a quem não apareça a opção(“Execute SQL”), clique em cima do file “.sql”, e de seguida faça: “open with” e aí escolha ” SQL Server Management” e voilá!
Parabens pelo excelente tutorial. Estou com uma duvida, como criar a acess Rule para não permitir que users não autenticados ou não pertencentes a rule Admin possam aceder a parte ‘administrativa’ ?
obrigado.