cap10

Propaganda
ASP.NET Passo a Passo
Procedimento de Logon
Conteúdo do Capítulo
1.
2.
3.
Implementar a autenticação de formulários
Utilizar controles de logon do ASP.NET
Fazer autorização baseada em papéis
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
1.
2.
3.
4.
5.
6.
Crie uma aplicação Web (Empty Web Application) de nome
SecureSite.
Adicione na aplicação um formulário de nome WebForm1.aspx.
Adicione ao formulário um rótulo com o texto “Parabens, você está no
nosso site”
Devemos agora criar um banco de dados para cadastro das
configurações dos usuários do ASP.NET.
Execute o programa aspnet_regsql.exe para criar o banco de dados
de usuário ou adicionar as tabelas no banco de dados da aplicação.
o programa aspnet_regsql.exe se encontra no diretório
c:\Windows\Microsoft.NET\Framework\Vxxxxx
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
7.
8.
9.
Clique na opção “Configurar o SQL
Server para serviços de aplicativos”.
Na próxima tela informe a
autenticação do SQL e mantenha a
opção de banco de dados padrão.
Esta opção irá criar um banco de
dados exclusivo para autenticação (
de nome aspnetdb), separado dos
dados da aplicação.
Caso deseje incluir apenas as
tabelas de autenticação no banco de
dados da aplicação, selecione o
banco desejado.
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
10.
Adicione uma string de conexão de nome aspnetdbConnectionString na
aplicação e direcione para o banco de dados de autenticação de
usuários criado (aspnetdb).
A string de conexão para autenticação SQL é mostrada abaixo e para
autenticação Windows a seguir
<connectionStrings>
<add name="aspnetdbConnectionString" connectionString="Data Source=.;
Initial Catalog=aspnetdb;Persist Security Info=True;
User ID=sa;Password=sa"
providerName="System.Data.SqlClient" />
</connectionStrings>
<connectionStrings>
<add name="aspnetdbConnectionString" connectionString="Data Source=.;
Initial Catalog=aspnetdb;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
11.
Adicione dentro da TAG <system.web> um bloco de configuração de
MemberShip para definir o provedor de usuários da aplicação conforme
apresentado no próximo slide.
ASP.NET Passo a Passo
Procedimento de Logon
<system.web>
<compilation debug="true" targetFramework="4.0" />
<membership defaultProvider="AspNetSqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="AspNetSqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="aspnetdbConnectionString"
applicationName="/"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
passwordFormat="Hashed" />
</providers>
</membership>
</system.web>
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
12.
13.
14.
Selecione a opção de menu Project/ASP.NET Configuration.
Selecione a aba provedor e selecione “Selecionar um único provedor
para todos os dados de gerenciamento de site”
Clique no link “Teste” para verificar se o provedor está funcionando
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
15.
Selecione a aba segurança e escolha “Selecionar Tipo de
Autenticação”. Escolha a opção “Da Internet”.
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
16.
Adicione dentro da TAG <system.web> um bloco de configuração de
RoleManager para definir o provedor de funções da aplicação
conforme apresentado a seguir.
<system.web>
...
<roleManager enabled="true" cacheRolesInCookie="true"
defaultProvider="SqlRoleProvider">
<providers>
<clear />
<add connectionStringName="aspnetdbConnectionString" applicationName=""
name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
</providers>
</roleManager>
</system.web>
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
17.
A interface da Ferramenta de Administração de Site fica da seguinte
forma:
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
18.
Utilizando a opção “Criar ou Gerenciar Funções”, adicione três funções
à aplicação:
Administrador,
JoeUser e
PowerUser
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
19.
20.
21.
22.
Utilizando a opção “Criar Usuários”, adicione usuários e atribua suas
funções.
Crie usuário para cada um
das funções definidas.
Após a criação das funções e
usuários a interface fica conforme a figura ao lado.
Após a criação dos usuários,
execute a aplicação.
A mensagem “Parabens, você
está no nosso site” é
apresentada.
ASP.NET Passo a Passo
Procedimento de Logon
Gerenciamento de Usuários
23.
24.
Acesse a ferramenta de administração de site e adicione uma regra
para negar acesso a usuários anônimos, conforme apresentado na
figura ao lado.
A seguinte configuração é então
introduzida no Web.Config
<authorization>
<deny users="?"/>
</authorization>
25.
26.
Esta configuração retira o acesso
dos usuários não autenticados.
Ao executar a aplicação é exibida
uma tela de erro de acesso.
ASP.NET Passo a Passo
Procedimento de Logon
Controles de Login
1.
2.
3.
4.
5.
Após a inclusão da configuração, deverá ser introduzida na aplicação
uma tela de login para permitir que os usuários realizem a
autenticação.
A pasta Login do Toolbox contem diversos componentes para
elaboração de telas relacionadas a login.
Crie um novo formulário na aplicação de nome Login.aspx.
Arraste para a nova página um componente “Login” que se encontra
na pasta Login do ToolBox.
Na janela de projeto, selecione a página WebForm1.aspx e com o
botão direito do mouse ative a opção “Set As Start Page”. A página
passa a ser a página inicial do site.
ASP.NET Passo a Passo
Procedimento de Logon
Controles de Login
1.
Incluir um appSettings ValidationSettings:UnobtrusiveValidationMode
com valor None .
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
ASP.NET Passo a Passo
Procedimento de Logon
Controles de Login
6.
7.
8.
9.
10.
Execute a aplicação. A página de login irá aparecer. Informe um dos
usuário e senha criados e clique no botão “Fazer Logon”. A página de
entrada aparece.
Digite diretamente no navegador o endereço da página de entrada, por
exemplo: http://localhost:60396/WebForm1.aspx.
Observe que a página de Login irá aparecer para solicitar a
autenticação.
A aplicação inclui automáticamente um querystring para redirecionar para a página digitada após o login.
Após o login o navegador vai
para página solicitada.
ASP.NET Passo a Passo
Procedimento de Logon
Autorização de Usuários
1.
2.
3.
O gerenciamento de login permite ainda que seja controlado o perfil de
acesso de cada usuário, liberando seletivamente as páginas da
aplicação para usuário distintos.
Crie no projeto uma pasta de nome “Administrador”. Dentro da
pasta, adicione um formulário de
nome “WebFormAdmin.aspx”.
No formulário insira um rótulo
“Página para Administradores”.
Repita o processo e crie pastas
JoeUser e PowerUser e suas
respectivas páginas de acesso
com os rótulos de identificação.
ASP.NET Passo a Passo
Procedimento de Logon
Autorização de Usuários
1.
2.
3.
4.
5.
Adicione à página de entrada da aplicação (WebForm1.aspx) três
hiperlinks um para cada página criada.
Atribua à propriedade Text dos hiperlinks os seguintes conteúdos: “Ir
para página do Administrador”, “Ir para página do usuário power” e “Ir
para página do usuário Joe”.
Ajuste a propriedade NavigateURL
para as páginas apropriadas.
Realize o login com cada um dos
usuários criados e clique nos links
para tentar acesso às pastas.
Observe que o acesso só é
permitido conforme configurado.
ASP.NET Passo a Passo
Procedimento de Logon
Autorização de Usuários
1.
2.
Acesse a ferramenta de configuração (Project/ASP.NET Configuration)
e clique na opção “Criar Regras de acesso”. A figura 1 apresenta a tela
de configuração.
Selecione a pasta JoeUser e a função JoeUser e marque permitir.
Uma nova regra de acesso é adicionada para a pasta.
ASP.NET Passo a Passo
Procedimento de Logon
Autorização de Usuários
1.
Repita o processo de configuração de regras de acesso para permitir a
pasta PowerUser à função PowerUser. Negue o acesso da função
JoeUser à pasta PowerUser.
ASP.NET Passo a Passo
Procedimento de Logon
Autorização de Usuários
1.
Configure regras de acesso para associar a pasta Administrador à
função Administrador. Negue o acesso das funções JoeUser e
PowerUser à pasta de Administrador.
ASP.NET Passo a Passo
Procedimento de Logon
Criação de Usuários
1.
2.
3.
4.
Caso se deseje incluir uma página para que o usuário crie seu login,
deve-se criar uma pasta para acesso público na aplicação
Adicione à aplicação uma pasta de
nome “AcessoPublico”.
Adicione à aplicação, nesta pasta,
uma página de nome
WebFormLoginCreate.aspx.
Adicione a nova página um componente CreateUserWizard. Atribua à
ContinueDestinationPageURL a
página ”~/WebForm1.aspx”. Assim,
após a execução do processo
de criação, o usuário é redirecionado à página de entrada da aplicação
ASP.NET Passo a Passo
Procedimento de Logon
Criação de Usuários
1.
2.
3.
Abra a página Login.aspx. Abaixo do componente “Login” insira um
componente HiperLink.
Atribua à propriedade text do
hiperlink o conteúdo “Criar Novo
Usuário” e à propriedade
NavigateURL o conteúdo
“~/AcessoPublico/
WebFormLoginCreate.aspx”.
Desta forma caso o usuário não
tenha login ainda no sistema
ele poderá configurar seu
acesso.
ASP.NET Passo a Passo
Procedimento de Logon
Criação de Usuários
1.
2.
Acesse a aplicação de configuração no menu Project/ASP.NET
Configuration. Observe que já existe duas regras de acesso herdadas
e que não podem ser excluídas: (a) Permissão para todos, herdada do
web.config do computador e (b) Negar acesso anônimo, herdada da
pasta raiz da aplicação.
Para sobrepor estas
regras crie um arquivo
web.config na pasta utilizando a opção Add / new
item / Web Configuration
File.
ASP.NET Passo a Passo
Procedimento de Logon
Criação de Usuários
1.
No arquivo web.config da pasta AcessoPublico inclua uma TAG
<authorization> para permitir acesso a todos os usuários conforme
apresentado abaixo. Acesse a aplicação de configuração para
observar a nova configuração introduzida.
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</configuration>
ASP.NET Passo a Passo
Procedimento de Logon
Criação de Usuários
1.
Para definir a função do usuário, trate o evento CreatedUser do
componente CreateUserWizard, incluindo o código abaixo, que define
a função do usuário.
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
Roles.AddUserToRole(CreateUserWizard1.UserName, "JoeUser");
}
ASP.NET Passo a Passo
Procedimento de Logon
Outros Componentes de Usuário
1.
2.
3.
4.
Aba a página de entrada (WebForm1.aspx).
Altere a mensagem de boas vindas para: Parabens [LoginName], você
está em nosso site. Caso deseje sair, clique aqui: [LoginStatus].
Nos textos entre colchete, incluir o componente de nome indicado
entre os colchetes.
Execute a aplicação e observe que o componente [LoginName]
apresenta o nome do usuário autenticado. Já o componente
[LoginStatus] apresenta um link que permite ao usuário desconectar
da aplicação e ir para a página de Login.
Download