bumpar och hoppas på att någon kan hjälpa mig att lösa problemet..
Session
26 svar · 1 131 visningar · startad av Glitter · sida 2 av 2
Frågan, av Glitter
Jag har en inloggnings sida: loggin.aspx Public Class loggin Private Sub BtnLogginClick1(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnLoggin.Click If Page.IsValid = True Then If users.Login(anv.Value, pass.Value) Then bla bla... Else FelAnvPass.Text = "Fel användarnamn eller lösenord"
Läs frågan i sin helhet →Hur ser koden ut nu?
Jag förstår inte riktigt hur det är tänkt att fungera.
1. Var skapar du instansen av users?
2. Det känns konstigt att du överhuvud taget kan ha en instans av users (User) innan du har loggat in och fått ett id.
3. Kompilerar koden överhuvud taget?
4. Vad är "f"?
Det är tänkt att fungera som såhär: Man loggar in på loggin.aspx när man gör det så får user classen alla värden från användaren som man kan behöva på resten av sidorna bara för att man inte skall behöva kolla med databasen varge gång man skall kolla vem som har loggat in eller få uppgifter om personen.
Vet inte om detta är en snabbare lösning men det är smidigare igallefall.
1.
Public Class top
bla bla...
[B]Dim users As New users[/B]
Private Sub BtnLoggin_Click1(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnLoggin.Click
If Page.IsValid = True Then
If users.Login(anv.Value, pass.Value) Then
bla bla...
Else
FelAnvPass.Text = "Fel användarnamn eller lösenord"
End If
End If
End Sub
Där "includerar" jag users
2. Jag kanske har gjort på fel sätt så du/ni får gärna komma med tips hur jag skall göra
3. Japp det funkar perfekt as kompilera i VS.Net
4. F är min class med functioner som jag använder överalt.
Försår du?
OK, har lite mer undringar (t.ex. så måste sidan ju ärva från System.Web.UI.Page), men jag gör ett försök. Lite rostig i VB, men jag provar...
1. Låt User-klassen (döpte om den till WebUser) ha en statisk (Shared i VB) metod för inloggning, som returnerar en WebUser om inloggningen lyckades.
Public Class WebUser
Dim _userId As Integer
Public Property UserId() As Integer
Get
Return _userId
End Get
Set(ByVal Value As Integer)
_userId = Value
End Set
End Property
Private Sub New(ByVal UserId As Integer)
_userId = UserId
End Sub
Public Shared Function Login(ByVal user As String, ByVal pass As String) As WebUser
If inloggning är ok Then
Return New WebUser(userID från inloggningen)
Else
Return Nothing
End If
End Function
End Class
och sedan
Public Class Top
Inherits System.Web.UI.Page
Private Sub BtnLoggin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLoggin.Click
If Page.IsValid = True Then
Dim user As WebUser = WebUser.Login(anv.Text, pass.Text)
If not user Is Nothing Then
' bla bla...
Else
'FelAnvPass.Text = "Fel användarnamn eller lösenord"
End If
End If
End Sub
End Class
Svaret på din fråga är att sidan äver från System.Web.UI.Page (dock inte i WebUser classen) skrev inte med det för att jag tyckte det var skälvklart.
Hur skall jag göra för att få fram WebUser classen från andra functioner/subbar. För den kräver ju ett userid för att man skall kunna använda den. Det har jag ju inte om man inte är inloggad.
Annars så fungerar det bra... den får rätt id och alt funkar i "Private Sub BtnLoggin_Click"
*bump*