Do que trata o artigo

Neste artigo veremos o que é como funciona o Forms Authentication no ASP.NET. Veremos como desenvolver aplicações que utilizam Forms Authentication simples, e também com mais de um tipo de usuário.

Para que serve

A principal finalidade deste artigo é mostrar ao leitor como funcionam os recursos de autenticação do ASP.NET e também mostrar de forma prática como é fácil aplicá-los em nossas aplicações Web.

Em que situação o tema é útil

Em situações onde devemos proteger o conteúdo exibido em uma área do sistema web para que usuários anônimos não consigam ter acesso antes de passar por uma página de identificação e autenticação.

Resumo do DevMan

Quando desenvolvemos aplicações em um ambiente web e desejamos proteger o conteúdo de uma página ou de uma pasta específica, podemos utilizar recursos de autenticação que irão impedir que o usuário tenha acesso a esta informação antes de ser identificado pela aplicação web.

Felizmente no ASP.NET existe um recurso chamado Forms Authentication, que nos permite de forma fácil implementar uma autenticação do usuário na aplicação, para assim conseguirmos ter maior controle de quem irá acessar aquela informação restrita. Neste artigo, iremos ver como implementar autenticação utilizando o Forms Authentication junto com permissões de usuários, ou seja, restringir um conteúdo a apenas um tipo de usuário específico.

Antes de começar a descrever como se implementa autenticação no ASP.NET, vamos primeiro entender como deve funcionar uma autenticação. Autenticação é o processo que busca verificar se tal usuário é reconhecido e autorizado a ter acesso às informações do sistema na qual estão restringidas por regras de acesso.

Geralmente, a identificação do usuário no sistema é dada por algum campo que é único para o usuário, seguido de uma senha para se ter um controle maior da segurança. Por exemplo: login (conhecido como username ou nome de usuário), CPF, Email, número de identificação, RA (para softwares acadêmicos), entre outros.

Uma vez identificado no sistema, o usuário pode estar liberado a ter acesso às informações restritas de acordo com o seu tipo de permissão (caso o sistema implemente níveis de acesso). Alguns cenários típicos onde podemos encontrar este tipo de solução são os clássicos Webmail e Internet banking, fóruns de discussões, web chats, sites de relacionamentos, entre outros.

Em ASP.NET, temos alguns recursos que nos fornecem autenticação tal como o Forms Authentication e MemberShips Provider. Neste artigo vamos implementar uma solução utilizando o Forms Authentication para um software acadêmico onde teremos uma área restrita para que alunos possam fazer uma consulta de suas notas, e para que professores possam manter um controle das notas de cada aluno. Irei utilizar o Visual Studio 2008 com ASP.NET 3.5 na linguagem C# para exemplificar.

Você pode criar este exemplo utilizando o Visual Studio 2005 e ASP.NET 2.0 também. No exemplo, não vou me preocupar com detalhes da aplicação como arquitetura, manutenção das informações e layout, irei apenas focar na exemplificação de uma autenticação do usuário em uma aplicação ASP.NET, que é a finalidade deste artigo.

Estrutura do exemplo

Antes de iniciar nossa aplicação de exemplo, vamos desenvolver uma estrutura básica de uma escola para tomarmos como base. Inicie um novo Website no Visual Studio, e dê o nome de Escola.

Feito isso, vamos criar um banco de dados simples para nossa aplicação. Clique com o botão direito na pasta App_Data, escolha a opção Add New Item e na lista que irá surgir, selecione SQL Server Database. E como nos mostra a Figura 1, dê um nome para este database de Escola.mdf, e clique em Add. Note que iremos utilizar o SQL Server Express como exemplo, mas isto pode ser aplicado a qualquer fonte de dados.

Figura 1. Criando Database Escola

Nota do DevMan:

A pasta App_Data em aplicações ASP.Net tem o objetivo de armazenar arquivos que nos servem de fonte de dados, tais como Banco de dados (Arquivos do SQL Server ou Access), arquivos XML, arquivos do Excel, entre outros. Esta pasta assim como outras pastas (App_Code, Bin), contém um tratamento especial pelo ASP.NET, impedindo que o usuário possa fazer o download de informações presentes.

Para que seja possível incluir um banco de dados SQL Server diretamente na pasta App_Data, o Visual Studio realiza uma conexão direta ao arquivo do banco de dados (neste caso o Escola.mdf). E para isso o Visual Studio vai precisar da edição Express do SQL Server (2005 ou 2008). Veja na seção de links onde encontrar o SQL Server Express, que é gratuíto, para download.

Criado o banco de dados, através da janela Server Explorer do Visual Studio, vamos desenvolver um modelo de tabelas que ira nos orientar em nossa aplicação. Vejam o modelo criado na Figura 2.

Figura 2. Modelo de Tabelas do Database Escola

Neste modelo de exemplo, temos 3 tabelas: Notas, Turma e Pessoa. A tabela Pessoa representa qualquer usuário presente no sistema, seja ele um Professor ou Aluno, identificado pelo campo Tipo (nvarchar(15)). Temos também a tabela de Notas, que representa a nota do aluno em uma determinada turma, e a tabela de Turmas onde temos uma disciplina que a turma participa e qual o professor desta turma.

...
Quer ler esse conteúdo completo? Tenha acesso completo