Login control. Remember my username and password cookie

Dúvidas, erros comuns e tudo o que esteja relacionado com ASP.NET
 

Login control. Remember my username and password cookie

Mensagempor zecarlos » Sábado, 10:54, 09 Maio 2009

No Visual Studio 2005, estou a utilizar um controlo de login com o membership 2.0 do ASP.NET.

Queria saber como é que posso, de forma fácil escrever um cookie nos clientes, para que a aplicação se recorde do seu username e password.

A segurança não é um problema, por isso, se necessário a password pode ser guardada em "clear text".

O meu código é VB.
zecarlos
 
Mensagens: 24
Registado: Terça, 00:49, 21 Abr 2009

 

Re: Login control. Remember my username and password cookie

Mensagempor ndocosta » Domingo, 00:34, 10 Maio 2009

Bem, a opção "RememberMe" não vai preencher nada, apenas vai autenticar o utilizador de forma automática. Sempre que o utilizador voltar ao site, já está autenticado. Nem precisa de se autenticar novamente, por isso, podes esconder o controlo de login.

É por isso que o control de login, tem a propriedade “VisibleWhenLoggedIn”. Define-a como “false” e o controlo de login já nem aparecerá aos utilizadores que já estejam autenticados:

Código: Seleccionar Todos
<asp:Login ID="Login1" runat="server" RememberMeSet="true" DisplayRememberMe="true" VisibleWhenLoggedIn= “false” >
</asp:Login>


Para além disso, existe também a função “AutoComplete” para os utilizadores que não tenham seleccionado a opção “RememberMe”, pois esses não estarão autenticados quando voltarem ao site.

Para guardares os valores num cookie, se as opções de cima não forem o pretendido, deves guardar os valores no login com sucesso, num cookie:

Código: Seleccionar Todos
Protected Sub Login1_LoggedIn(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoggedIn
        Dim user As MembershipUser = Membership.GetUser(Login1.UserName)
        Dim cookie As New HttpCookie("someName")
        cookie.Values.Add("userName", user.UserName)
        cookie.Values.Add("password", user.GetPassword)
        Response.Cookies.Add(cookie)
    End Sub


E depois, no load da página de login, ir verificar se esses valores estão preenchidos:

Código: Seleccionar Todos
If Not HttpContext.Current.Request.IsAuthenticated Then
            If Request.Cookies("someName") IsNot Nothing Then
                Dim userName As String = Request.Cookies("someName")("userName")
                Dim password As String = Request.Cookies("someName")("password")
                Dim userNameTxt As TextBox = CType(Login1.FindControl("UserName"), TextBox)
                Dim passwordTxt As TextBox = CType(Login1.FindControl("Password"), TextBox)
                userNameTxt.Text = userName
                passwordTxt.Text = password
            End If
        End If
Imagem
ndocosta
Administrador do Site
 
Mensagens: 24
Registado: Sexta, 23:21, 17 Abr 2009

 

Voltar para ASP.NET

Quem está ligado

Utilizadores a navegar neste fórum: Nenhum utilizador registado e 1 visitante

cron
web counter