Login Simples em ASP

Como implementar uma segurança com base em formulários para os aplicativos ASP . Você pode usar esse mecanismo quando sua aplicação é segurança aprimorada ou quando você permite apenas usuários autenticados (login). Também é possível usar esse mecanismo quando os usuários, como os usuários da Internet, não fazem parte de seu domínio interno. Este exemplo usa um banco de dados para armazenar as informações dos usuários e validá-los nesse mesmo banco de dados.

 

Abaixo as etapas necessárias para implementar a segurança com base em formulários ou a segurança personalizada em seu aplicativo  ASP:

 

1.

Apresente um formulário de login ao usuário.

2.

Valide as credenciais do usuário, comparando-as com as informações do usuário armazenadas no seu banco de dados de usuário.

3.

Crie uma variável de sessão e defina seu valor para a identificação do usuário.

4.

Para cada solicitação subseqüente feita pelo usuário, verifique se o valor dessa variável não é igual a uma seqüência de caracteres em branco (“”), para confirmar se ele fez login.

5.

Se a variável estiver em branco, o usuário não é válido ou fez logoff da sessão. Redirecione o usuário para a página de login, se a variável estiver em branco.

6.

Se o login falhar porque esse usuário não existe em seu banco de dados, talvez ele ainda não esteja registrado em seu site. Redirecione o usuário para a página Register.asp para permitir que ele se registre em seu site. Quando o usuário se registra, seus detalhes são adicionados ao banco de dados de usuário.

7.

Forneça um link para a página de logoff em todas as páginas, exceto na página de login, para permitir que o usuário faça logoff da sessão. Essa página limpa a variável de sessão que está mantendo a identificação do usuário, atribuindo a ela uma seqüência de caracteres em branco (“”).

 

Crie uma tabela do banco de dados de usuário

CREATE TABLE [Users] ( [uid] [varchar] (25) NOT NULL , [password] [varchar] (25) NOT NULL , CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ( [uid] ) ON [PRIMARY] ) ON [PRIMARY] GO

Salve como User.txt.

 

Aqui você precisa ter o Microsoft SQL Server , em seguida clique em Iniciar, aponte para Programas, para Microsoft SQL Server e clique em Query Analyzer. Na caixa de diálogo Conectar-se ao SQL Server, especifique o nome do servidor que está executando o SQL Server, a identificação do usuário e a senha para se conectar ao SQL Server.

 

No menu Arquivo, clique em Abrir. Na caixa de diálogo Abrir, clique em Todos os arquivos (*.*) na caixa Arquivos do tipo. Clique em User.txt na lista e em Abrir.

Na caixa DB da barra de ferramentas, selecione o banco de dados em que você quer criar essa tabela. Se você não tiver um banco de dados específico para isso, clique em Pubs para criar essa tabela no banco de dados Pubs de exemplo.

Após selecionar o banco de dados, clique em Executar no menu Consulta para executar a consulta. Isso cria uma tabela Usuários no banco de dados selecionado.

 

Crie e configure o diretório virtual

No Windows Explorer, crie uma pasta na raiz da Web. Por padrão, a raiz da Web é Sua_unidade:\Inetpub\wwwroot. Nomeie a pasta ASPSecureAPP.

Inicie o Console de Gerenciamento Microsoft (MMC) do Gerenciador de serviços de Internet.

Abra o IIS, gerenciador de serviço da Internet  (IIS) , clique em Iniciar, em Executar, digite inetmgr na caixa Abrir e pressione ENTER.

Expanda Computador e Site padrão da Web. Clique com o botão direito do mouse na pasta ASPSecureAPP que você criou na etapa 1 e clique em Propriedades.

Na guia Diretório na caixa de diálogo Propriedades, clique em Criar na seção Configurações do aplicativo para marcar o diretório como um aplicativo.

Crie as páginas

Login.asp.

Esta página permite que os usuários digitem seu nome de usuário e sua senha para acessar o site.

Copie o seguinte código em um página ASP nova. Salve o arquivo Login.asp na pasta ASPSecureAPP do diretório Inetpub\Wwwroot.

 

<%

A seguir três linhas de código são usados para assegurar que esta página não está em cache no cliente.

Response.CacheControl = “no-cache”

Response.AddHeader “Pragma”, “no-cache”

Response.Expires = -1

%>

<html><body>

<form action=”Validate.asp” method=”post”>

<P>

Login ID:    <INPUT type=text id=UID  name=UID> <br>

Password:  <input type=”password” id=”passwd” name=”passwd”>

</P>

<input type=”submit” value=”Login” id=”submit1″ name=”submit1″>

</form>

</body></html>

 

Validate.asp

Após o usuário fornecer suas informações de login no seu aplicativo, essa página valida as informações e redireciona o usuário para a página apropriada.

Estes parâmetros desta seqüência são:

Identificação do usuário

Senha

Catálogo inicial

Fonte de dados

 

Salve o arquivo Validate.asp na pasta ASPSecureAPP do diretório Inetpub\wwwroot.

 

 

 

<%

Response.Buffer=true

 

A seguir três linhas de código são usados para assegurar que esta página não está em cache no cliente.

Response.CacheControl = “no-cache”

Response.AddHeader “Pragma”, “no-cache”

Response.Expires = -1

 

Dim userid

Dim Pwd

userid= Request.Form(“UID”)

Login.asp.

 

 

if userid <> “” then

    pwd = Request.Form(“passwd”)

        

    Dim Cn

    Dim Rs

    Dim StrConnect

 

    StrConnect = “Provider=SQLOLEDB.1;User ID=<username>;Password=<strong password>;Initial Catalog=pubs;” & _

    “Network Library=dbmssocn;Data Source=servername”

 

    Set Cn = Server.CreateObject(“ADODB.Connection”)

    Cn.Open StrConnect

    Set Rs = Server.CreateObject(“ADODB.Recordset”)

    Rs.Open “Select * from Users where uid=’” & userid & “‘”,Cn

    If Not Rs.EOF then

        If strcomp( pwd, Rs.Fields(“password”).value , 1) = 0 then

            Session(“UID”) = userid

            Response.Redirect “Default.asp”

            Response.End

        Else

            Response.Redirect “Login.asp”

            Response.End

        End if

    Else

Register.asp page

application.

        Response.Redirect “Register.asp”

        Response.End

    End if

Else

    Response.Redirect “Login.asp”

    Response.End

End if

 

%>

 

Register.asp

Esta página permite que os usuários digitem seu nome de usuário e sua senha para acessar o site.

Estes parâmetros desta seqüência são:

Identificação do usuário

Senha

Catálogo inicial

Fonte de dados

 

Salve o arquivo Register.asp na pasta ASPSecureAPP do diretório Inetpub\Wwwroot.

 

 

<%

Response.Buffer=true

 

A seguir três linhas de código são usados para assegurar que esta página não está em cache no cliente.

Response.CacheControl = “no-cache”

Response.AddHeader “Pragma”, “no-cache”

Response.Expires = -1

 

Dim pwd

Dim userid

 

userid = Request.Form(“uname”)

pwd = Request.Form(“pwd”)

 

If userid <> “” then

    If  pwd <> “” then

        Dim Cn

        Dim Rs

        Dim StrConnect

 

‘Especifique a seqüência de conexão para acessar o banco de dados.Lembre-se de alterar os seguintes parâmetros string de conexão para refletir os valores corretos para o seu servidor SQL 

 

    StrConnect = “Provider=SQLOLEDB.1;User ID=<username>;Password=<strong password>;” & _

        “Initial Catalog=pubs;Network Library=dbmssocn;Data Source=servername”

 

        Set Cn = Server.CreateObject(“ADODB.Connection”)

        Cn.Open StrConnect

        Set Rs = Server.CreateObject(“ADODB.Recordset”)

        Rs.Open “Select * from Users where uid=’” & userid & “‘”,Cn,3

        If Rs.RecordCount>0 then

            Response.Write “ O nome do usuário que você digitou já foi tomado por outra pessoa.”

            Response.Write “ Utilize um Nome de usuário diferente.”

            Set Rs = Nothing

            Set Cn = Nothing

        Else

            Dim records

            Cn.Execute “INSERT INTO USERS1 (uid,password) VALUES” & _

            “(‘” & userid & “‘,’” & pwd & “‘)” , records

            If records=1 then

                Response.Write “ Você foi registrado com sucesso.”

                Set Rs = Nothing

                Set Cn = Nothing

                Session(“UID”)= userid

                Response.Redirect “Default.asp”

                Response.End                     

            Else

                Response.Write Err.Description

                Set Rs = Nothing

                Set Cn = Nothing

                Response.End                     

            End if

        End if

    Else

    Response.Write “ Senha está vazia. Não foi possível registrar. Tente novamente.”

    End if

End if

%>

 

<html>

<head>

<script language=”javascript”>

function callsubmit()

{

 

if (frm1.pwd.value==frm1.pwdc.value) {

frm1.submit();

}

else

{

alert(“A senha não corresponde. Re-digite a senha“);

}

 

}

</script>

</head>

<body>

<form action=”" method=”post” id=frm1 name=frm1>

<P>

Login ID:    <INPUT type=text id=uname  name=uname> <br>

Password:  <input type=”password” id=”pwd” name=”pwd”> <br>

Confirm Password:  <input type=”password” id=”pwdc” name=”pwdc”>

</P>

<input type=”button” value=”Register” id=”submit1″ name=”submit1″ onclick=javascript:callsubmit();>

</form>

</body>

</html>

 

Logoff.asp

Esta página permite que os usuários façam logoff.

 Salve o arquivo Logoff.asp na pasta ASPSecureAPP do diretório Inetpub\Wwwroot.

 

<%

Response.Buffer=True

 

Response.CacheControl = “no-cache”

Response.AddHeader “Pragma”, “no-cache”

Response.Expires = -1

 

Session(“UID”)=”"

Session.Abandon

Response.Redirect “Login.asp”

Response.End

%>

 

Default.asp

É possível usar esta página para testar as outras páginas que você criou.

Salve o arquivo Default.asp na pasta ASPSecureAPP do diretório Inetpub\Wwwroot.

 

<%

 

Response.CacheControl = “no-cache”

Response.AddHeader “Pragma”, “no-cache”

Response.Expires = -1

 

if session(“UID”)=”" then

    Response.Redirect “Login.asp”

    Response.End

else

    Response.Write “vc esta logado como” & session(“UID”) & “<br>”

end if

%>

<HTML>

<BODY>

<A HREF=”Logoff.asp”>log off</A>

<BODY>

</HTML>

 

Adicione um código de validação às páginas

O seguinte código verifica se o usuário já fez login no site e ainda não fez logoff.

<%

 

Response.CacheControl = “no-cache”

Response.AddHeader “Pragma”, “no-cache”

Response.Expires = -1

 

if session(“UID”)=”" then

    Response.Redirect “Login.asp”

    Response.End

end if

%>

 

Como esse aplicativo funciona

Em termos práticos, esse aplicativo tem duas páginas (Login.asp e Register.asp) que qualquer um pode visualizar sem fornecer suas credenciais. Para visualizar as páginas restantes, um usuário deve fazer login usando uma identificação de usuário e uma senha válidas. Portanto, quando um usuário navega diretamente para qualquer página que exige informações de login, ele é redirecionado à página Login.asp. Os usuários devem fornecer uma identificação de usuário e uma senha válidas na página Login.asp. Se a senha estiver incorreta, o usuário pode fazer login novamente.

Se a identificação e a senha do usuário não existirem em seu banco de dados, o usuário é redirecionado para a página Register.asp na qual ele pode se registrar para usar o seu aplicativo. Quando o usuário se registra no seu site pela página Register.asp, seus detalhes são inseridos no banco de dados que você está usando para validar os usuários.

 

Escrito por X@nBuRzUm on novembro 13, 2008. Arquivado em ASP.net. Você pode seguir as respostas a esse artigo pelo RSS 2.0. Você pode deixar respostas para esse artigo

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>