ASP .NET -  Usando MemberShip, roles e Profiles com o Microsoft Access 2


Na primeira parte deste artigo eu mostrei os passos necessários para podermos ajustar o nosso ambiente para poder usar os recursos de MemberShip, roles e Profiles com o Microsoft Access. Vou agora mostrar como realmente aplicar isso a um novo projeto web.

Usando os Providers para MS Access no seu site web

Se você seguiu as instruções da primeira parte deste artigo e não obteve nenhuma mensagem de erro esta pronto para usar os providers para MS Access.

Você pode então criar usuários com o controle de assistente CreateUserWizard, pode usar o controle Login , pode usar o método CreateUser para criar um usuário via código e pode usar também a ferramenta de administração WSAT(Web Site Administration Tool) para gerenciar os usuários e permissões.

Vamos começar usando a ferramenta WSAT; abra o projeto no Visual Web Developer e no menu WebSite clique em ASP .NET Configuration ou clique no ícone da janela Solution Explorer. Você verá a ferramenta de administração WSAT ser aberta:

Clique na aba Provider e a seguir no link Select a different provider for each feature (advanced); Na janela que será aberta você irá ver que o Access Provider esta selecionado para as características de MemberShip e Role;

A ferramenta WSAT sabe qual o provider deve usar com base no arquivo de configuração web.config.

Agora vamos criar um um perfil chamado Administrador e em seguida um usuário chamado Admin para testarmos.

Clique na aba Security e você verá que não temos nenhum perfil e nenhum usuário definido. Para criar um perfil (Role) clique no link Create or Manage roles;

A seguir informe o nome Administrador para o novo perfil a ser criado e clique no botão Add Role;

Você verá na próxima tela o perfil criado exibido conforme abaixo:

Agora clique no botão Back para voltar a página Security. Você vai notar que agora temos um perfil criado. Para criar um usuário clique no link Create User;

Na página apresentada marque o perfil Administrador para este usuário e informe os dados solicitados para criar um novo usuário e clique em Create User;

Uma página irá informar que o usuário foi criado com sucesso, apenas clique no botão Continue. Voltando para a página inicial você verá que agora temos um perfil e um usuário criado:

Pronto ! Acabamos de criar o perfil Administrador e o usuário macoratti.

Preparando o Arquivo web.config : Definindo o modo de autenticação e autorização

Vamos voltar ao nosso projeto web e abrir o arquivo web.config e alterar o elemento authentication conforme o código a seguir:

<authentication mode="Forms">
  <forms loginUrl="Login.aspx" defaultUrl="Default.aspx"/>
</authentication>

Você esta informando ao ASP.NET que vai utilizar autenticação do tipo Forms e que o formulário de autenticação será Login.aspx e que o formulário padrão será a página Default.aspx. (Autenticação é o processo responsável por capturar as credenciais dos usuários e verificar suas permissões definidas.)

Nota:  A propriedade DefaultUrl  obtém a URL que a classe FormsAuthentication irá  usar par efetuar o redirecionamento.

O ASP.NET permite alguns tipos de autenticação:   None  , Windows , Forms  e Passport

Com o elemento authentication estamos determinando o tipo de autenticação que iremos utilizar, no caso forms, e a url do formulário de autenticação.

Agora devemos restringir o acesso ao usuários anônimos a nossa aplicação. Abra o arquivo web.config e inclua a seguinte definição:

<authorization>
     <
deny users ="?" />
</
authorization
>

Esta definição do elemento autorization, esta  negando acesso a usuários desconhecidos (não autenticados) representado pelo "?".

Agora ao tentar acessar a aplicação um usuário não autenticado será direcionado para a página Login.aspx

Vamos então criar esta página no nosso web site. Clique com o botão direito do mouse sobre o nome do projeto e selecione Add New Item e em Templates selecione Web Form e informe o nome Login.aspx.

Agora  a partir da   caixa de ferramentas , na aba Login, inclua um componente Login no formulário;

Aproveite e altere os textos relativos as labels do formulário e mensagens para português na janela de propriedades do controle;

Este formulário será apresentando para que o usuário se identifique. A verificação será feita usando os providers para o MS Access criado onde somente o usuário macoratti terá acesso.

Agora vamos abrir o code-behind a página Default.aspx e no evento Load da página incluir o código abaixo:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


Label1.Text =
"Ol  " & User.Identity.Name


If
(User.IsInRole("Administrador"))
Then

    Label1.Text = "Você ‚ membro do perfil Administrador "

End If

End Sub

Este código irá exibir o nome do usuário logado e verificar se ele faz parte do perfil Administrador , exibindo uma mensagem em caso positivo.

Executando o web site veremos o formulário de Login , e, informando o nome e senha do usuário cadastrado (macoratti) iremos obter:

Com isso comprovamos que a utilização dos providers para MSAccess é possível e apresenta os mesmos recursos que para o SQL Server 2005.

Pegue o projeto completo aqui: Access_Providers.zip

Eu sei é apenas ASP .NET mas eu gosto ...

Referências:


José Carlos Macoratti