torsdag 21 januari 2010

Login (1)

När väl registreringen är på plats ska det bli möjligt att logga in. Hur görs enklast möjliga inloggning? För det krävs ett formulär med fälten användarnamn och lösenord.

<h1>Logga in</h1>
<asp:Label ID="Message" runat="server" Text="Meddelande" ForeColor="#FF3300"></asp:Label>
<p>Användarnamn<br /><asp:TextBox ID="UserName" runat="server"></asp:TextBox></p>
<p>Lösenord<br /><asp:TextBox ID="Password" runat="server"></asp:TextBox></p>
<asp:Button ID="Login1" runat="server" Text="Logga in" />


Vid klick på "logga in" kollas uppgifterna mot databasen.

Protected Sub Login1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.Click
Dim sql As String
Dim Userid As Int32
Dim conn As SqlConnection
Dim connectionstring As String = ConfigurationManager.ConnectionStrings("System91").ConnectionString
conn = New SqlConnection(connectionstring)
Dim comm As SqlCommand
Message.Text = ""
sql = "SELECT id, username, password FROM [User] WHERE username='" & UserName.Text & "' and password='" & Password.Text & "'"
comm = New SqlCommand(sql, conn)
Try
conn.Open()
Userid = comm.ExecuteScalar()
If Userid = 0 Then
Message.Text += " Du är inte inloggad. Om du inte är registrerad kan du göra det <a href='Userregistration.aspx'>här</a>"
Else
Message.Text += " Du är inloggad. ."
End If
Catch ex As SqlException
Message.Text += " Databasfel. " & ex.Number & ": " & ex.Message ', ex.Gettype.ToString
Message.Text += " Du är inte inloggad. "
Finally
conn.Close()
End Try
End Sub

Sedan är användaren inloggad, men för hur länge? Det framgår av Microsofts dokumentation av Session. En enklare beskrivning finns på utmärkta www.w3schools.com sida om ASP Sessions. W3schools (inte Microsoft!) ger svaret: standardvärdet är 20 minuter om annat inte bestämts av systemet.

Så nu fungerar alltså inloggningen, men det är ganska värdelös för användaren kommer inte vidare. Hur bör loginfunktionen vidareutvecklas?
- Logout
- Användarvillkor
- Ingen automatisk utloggning
- Uppdatera sidhuvudet
- Gå till en ny sida

Utan dessa tillägg är det inte meningsfullt att publicera login.aspx på www.server42.se

Inga kommentarer:

Skicka en kommentar