Primeiro antes de começarmos a falar do assunto deste tópico gostaria de deixar algumas coisas claras aqui, minha intenção aqui é apenas mostrar uma forma fácil e rápida de implementar um controle de login muito básico para um aplicativo web que use asp.net.
Sabemos que existem “ene” maneiras de se fazer um controle de login em asp.net dentro dessas a mais simples e rápida que encontrei foi essa que vou mostrar, porque de fazer algo simples e rápido? Quem é freelancer sabe que muitas vezes precisamos de fazer uns “mini-aplicativos” para os clientes, coisas que não necessitam de um login em um banco SQL e todos aqueles recursos disponiveis no Memberships, por exemplo ninguém em perfeito estado mental vai criar um mega sistema de login para o cara poder cadastra dois usuários, todo caso se seu caso não for tão simples dê uma lida neste otimo artigo do Israel Aéce, ali você verá inumeras opção para um controle de login totalmente completo.
Primeiro vamos acertar seu “web.config” :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <configuration> <system.web> <customErrors mode="Off"/> <authentication mode="Forms"> <forms name="appNameAuth" defaultUrl="/meusite/protegido/principal.aspx" path="/" loginUrl="login.aspx" protection="All" timeout="30"> <credentials passwordFormat="Clear"> <user name="oraculum" password="teste" /> <user name="root" password="teste" /> </credentials> </forms> </authentication> <authorization> <deny users="?" /> </authorization> </system.web> </configuration> |
Vejamos o código acima: [linhas]
- Linha 5
- Linha 7 – Crie aqui os usúarios que poderão acessar a area restrita do site
name – nome do usuario
password – senha do usuario - Linha 13 – Você deve definir o tipo de acesso a pasta que você especificou na linha 5 na parte “name”, aqui temos duas opções:
“?” – Vai impedir que qualque usuário não logado acesse as paginas daquele aplicativo
“*” – Vai liberar geral, todos vão poder acessar mesmo sem estar logado
Name – nome da aplicação
path – deixe padrão como /
loginUrl – nome da pagina de login (coloque-a na raiz do site)
defaultUrl – usamo para indicar a página inicial da aplicação, ou seja a página que o usúario irá logar após efetuar o login com sucesso.
Tela de Login
Code-Behind:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnEntrar_Click(object sender, EventArgs e) { // verifico o usuario e senha digitados conferem com os do web.config if (FormsAuthentication.Authenticate(txtUsuario.Text, txtSenha.Text)) // se aprovado redireciono o usuario para pagina default definida no web.config FormsAuthentication.RedirectFromLoginPage(txtUsuario.Text, CheckBox1.Checked); else // caso contrario retorno com a mensagem de erro lblErro.Text = "Suas credenciais estão incorretas, verifique."; } } |
Parte HTML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | <%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Login Admin</title> <link href="001.css" rel="stylesheet" type="text/css" /> </head> <body> <form id="form1" runat="server"> <div> <table style="width: 512px"> <tr> <td colspan="2"> - Login</td> </tr> <tr> <td> <asp:Label ID="Label2" runat="server" Text="Usuário:"></asp:Label></td> <td> <asp:TextBox ID="txtUsuario" runat="server" Columns="20" CssClass="tb" MaxLength="20"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtUsuario" ErrorMessage="Digite um usuário"></asp:RequiredFieldValidator></td> </tr> <tr> <td> <asp:Label ID="Label1" runat="server" Text="Senha:"></asp:Label></td> <td> <asp:TextBox ID="txtSenha" runat="server" Columns="20" CssClass="tb" MaxLength="20" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtSenha" ErrorMessage="Digite uma senha."></asp:RequiredFieldValidator></td> </tr> <tr> <td> </td> <td> <asp:ValidationSummary ID="ValidationSummary1" runat="server" /> <asp:Label ID="lblErro" runat="server" CssClass="msn_error" EnableViewState="False"></asp:Label></td> </tr> <tr> <td> </td> <td> <asp:CheckBox ID="CheckBox1" runat="server" Visible="False" /></td> </tr> <tr> <td> </td> <td> <asp:Button ID="btnEntrar" runat="server" CssClass="bt" OnClick="btnEntrar_Click" Text="Entrar" /></td> </tr> </table> </div> </form> </body> </html> |
Apenas para constar se você precisar deslogar o usuario em algum momento é só fazer assim:
1 | FormsAuthentication.SignOut() |
Viram falei que era rápido e fácil 🙂