Login para uma Agenda (ASP.NET / VB.NET)

Porque não usas o Membership e Profile do asp.net 2.0?

Muito facil de usar para autenticações e para guardar info de um de determincado utilizador e tens logo métodos para verificar tudo o que queres.

Se queres manter estado entre páginas, podes também optar por outra solução sem ser o uso de variáveis de Sessão.
 
Infelizmente quando clico no link "Encerrar Sessão"... não acontece nada...

podem-me explicar porquê?


O código da página é este:


<%@ Page Language="VB" %>
<script runat="server">
Protected Sub Label1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Session("auth") <> True Then
Response.Redirect("Login.aspx")
End If
Label1.Text = Session("User")
End Sub
Protected Sub Logout(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs)
e.Authenticated = False
Response.Redirect("Login.aspx")
End Sub
</script>
<html>
<body>
<form runat="server">
<table align="left" width="250" bordercolor="#999999" border="1" cellpadding="2">
<tr>
<td width="100" align="center" bgcolor="#FFFFCC">
<span style="color:#339900"><b>Utilizador</b></span>
</td>
<td width="150" align="center">
<span style="color:#000099"><asp:Label ID="Label1" runat="server" OnLoad="Label1_Load"></asp:Label></span>
</td>
</tr>
</table>
<table align="right" width="150" border="1" bordercolor="#999999" cellpadding="2">
<tr>
<td width="150" align="center" bgcolor="#FFFFCC">
<a href="#" onClick="Logout"><span style="color:#FF0000"><b>Encerrar Sessão</b></span></a>
</td>
</tr>
</table>
</form>
<br><br><br>
(Conteúdo)...
</body>
</html>
 
Última edição:
Usei um botão em vez de um Link.
Agora já está a funcionar... mas não consegui utilizar o "e.authenticated = false" para fazer o Logout, em vez disso usei o Session.Clear, o Session.Abandon e o Response.Redirect.
Acham que assim o Logout é feito com segurança?


O código da página Login.aspx e da página Reserved.aspx, são os seguintes:



Login.aspx
----------

<%@ Page Language="VB" %>
<script runat="server">
Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs)
Dim Pass As String
Pass = Login1.UserName & "|" & Login1.Password
Select Case Pass
Case "Pedro|123", "Susana|456", "Ricardo|789"
Session("User") = Login1.UserName
e.Authenticated = True
Session("auth") = e.Authenticated
Case Else
Session("User") = ""
e.Authenticated = False
Session("auth") = e.Authenticated
End Select
End Sub
</script>
<html>
<head></head>
<body background="Imagens/BGGradiente.png">
<br><br><br><br><br><br><br><br><br><br><br><br>
<center>
<form id="Form1" runat="server">
<asp:Login id="Login1" runat="server" backcolor="#EFF3FB" bordercolor="#B5C7DE" borderpadding="4" borderstyle="Solid" borderwidth="1px" font-names="Verdana" font-size="0.8em" forecolor="#333333" OnAuthenticate="Login1_Authenticate" DisplayRememberMe="False" RememberMeText="" TitleText="Acesso" UserNameLabelText="Nome:" DestinationPageUrl="Reserved.aspx" FailureText="Os Dados introduzidos não são válidos!" Height="84px" LoginButtonText="Entrar" Width="235px" EnableViewState="False" UserNameRequiredErrorMessage="Username is required.">
<TitleTextStyle BackColor="#507CD1" ForeColor="White" Font-Size="0.9em" Font-Bold="True"></TitleTextStyle>
<InstructionTextStyle ForeColor="Black" Font-Italic="True"></InstructionTextStyle>
<TextBoxStyle Font-Size="0.8em"></TextBoxStyle>
<LoginButtonStyle BackColor="White" BorderStyle="Solid" ForeColor="#284E98" BorderWidth="1px" BorderColor="#507CD1" Font-Size="0.8em" Font-Names="Verdana"></LoginButtonStyle>
<FailureTextStyle Font-Size="0.8em" Font-Bold="False" Font-Italic="False" />
<ValidatorTextStyle ForeColor="Orange" />
</asp:login>
</form>
</center>
</body>
</html>



Reserved.aspx
--------------

<%@ Page Language="VB" %>
<script runat="server">
Protected Sub Label1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Session("auth") <> True Then
Response.Redirect("Login.aspx")
End If
Label1.Text = Session("User")
End Sub
Protected Sub Logout(ByVal sender As Object, ByVal e As System.EventArgs)
Session.Clear()
Session.Abandon()
Response.Redirect("Login.aspx")
End Sub
</script>
<html>
<body background="Imagens/BGGradiente.png">
<form runat="server">
<table align="left" width="250" bordercolor="#999999" border="1" cellpadding="2">
<tr>
<td width="100" align="center" bgcolor="#FFFFCC">
<span style="color:#339900"><b>Utilizador</b></span>
</td>
<td width="150" align="center">
<span style="color:#000099"><asp:Label ID="Label1" runat="server" OnLoad="Label1_Load"></asp:Label></span>
</td>
</tr>
</table>
<asp:Button ID="Button1" Text="Encerrar Sessão" runat="server" OnClick="Logout"></asp:Button>
</form>
<br><br><br>
(Conteúdo)...
</body>
</html>
 
Última edição:
A minha duvida mesmo, é se o Logout é bem executado... uma vez que, e penso que repararam, eu usei uma determinada maneira para fazer o Login, e para fazer o Logout usei outra.
 
Back
Topo