Differentieret login med sessions i ASP.NET

Tags:    asp.net

Hej
Er der nogen som kan hjaelpe mig. Jeg skal lave et differentieret login til skoleprojekt (sidder i USA og laver det) med sessions. Grunden dertil er at naar en bruger logger ind skal de kunne se hvad status er paa deres projekt er.
Min kode paa loginsiden ser indtil videres saadan ud:

Dim strConn As String
Dim objConn As OleDbConnection
Dim objComm As OleDbCommand
Dim objDR As OleDbDataReader

Sub btnLogin_Click(sender As Object, e As EventArgs)

Dim StrSQL as string

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
strConn += "Data Source=" & Server.Mappath("./db/db.mdb") & ";"

strSQL = "SELECT clientno FROM Clients WHERE clients=" & txtClientno.text & " AND password='" & txtpassword.text & "';"

objConn = new OledbConnection(strConn)
objComm = new OledbCommand(strSQL, objConn)

objConn.Open()
objDR = objComm.ExecuteReader()
If objDR.Read = true Then
Opryd()
Session("SignIn")=txtClientno.text
Response.Redirect("projectstatus.aspx")
Else
strSQL = "SELECT Clientno FROM clients WHERE Clientno=" & txtClientno.text & " AND password='" & txtpassword.text & "';"

objConn = new OledbConnection(strConn)
objComm = new OledbCommand(strSQL, objConn)

objConn.Open()
objDR = objComm.ExecuteReader()
If objDR.Read = true Then
Opryd()
Session("SignIn")=txtclientno.text
Response.Redirect("projectstatus.aspx")
Else
lblErrorMessage.text = "Error in login"
Opryd()
End If
End If

End Sub

Sub Opryd()
objDR.Close()
objConn.Close()
End sub

Nu er mit problem, hvad skal jeg skrive paa Projectstatus.aspx for at det er deres og ikke alle andres projectstatus der bliver vist.

Paa forhaand tak.
Stine



4 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hej
Er der nogen som kan hjaelpe mig. Jeg skal lave et differentieret login til skoleprojekt (sidder i USA og laver det) med sessions. Grunden dertil er at naar en bruger logger ind skal de kunne se hvad status er paa deres projekt er.
Min kode paa loginsiden ser indtil videres saadan ud:

Dim strConn As String
Dim objConn As OleDbConnection
Dim objComm As OleDbCommand
Dim objDR As OleDbDataReader

Sub btnLogin_Click(sender As Object, e As EventArgs)

Dim StrSQL as string

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
strConn += "Data Source=" & Server.Mappath("./db/db.mdb") & ";"

strSQL = "SELECT clientno FROM Clients WHERE clients=" & txtClientno.text & " AND password='" & txtpassword.text & "';"

objConn = new OledbConnection(strConn)
objComm = new OledbCommand(strSQL, objConn)

objConn.Open()
objDR = objComm.ExecuteReader()
If objDR.Read = true Then
Opryd()
Session("SignIn")=txtClientno.text
Response.Redirect("projectstatus.aspx")
Else
strSQL = "SELECT Clientno FROM clients WHERE Clientno=" & txtClientno.text & " AND password='" & txtpassword.text & "';"

objConn = new OledbConnection(strConn)
objComm = new OledbCommand(strSQL, objConn)

objConn.Open()
objDR = objComm.ExecuteReader()
If objDR.Read = true Then
Opryd()
Session("SignIn")=txtclientno.text
Response.Redirect("projectstatus.aspx")
Else
lblErrorMessage.text = "Error in login"
Opryd()
End If
End If

End Sub

Sub Opryd()
objDR.Close()
objConn.Close()
End sub

Nu er mit problem, hvad skal jeg skrive paa Projectstatus.aspx for at det er deres og ikke alle andres projectstatus der bliver vist.

Paa forhaand tak.
Stine


Hej Stine... for det første er metoden du benytter til at tjekke kodeord og username ikke særlig fornuftig.. jeg kan ikke huske det rigtige "hacker" ord for det.. men det er noget lignende "sql projection" .. eksempelvis hvis man indtaster "skod' Or 1=1'" i txtpassword vil den altid returnere noget og man vil blive logget ind... (desuden sletter man normalt adressen til databasen :) )

Jeg arbejder til dagligt selv med C#, men det du gør er at du opretter et Session object der hedder "SignIn"... Dette session object gør sig så gældende på serveren ind til brugeren lukker browseren eller timeout tiden gør sig gældene....

Med C# henter man sessionen med

string mySession = (string) Session["SignIn"].ToString();

Jeg kan ikke lige sige helt præsis hvad det er med VB men

Dim mySession as String

mySession = Session["SignIn"]

Hvordan man lige convertere objektet Session til en string med VB aner jeg desværre ikke...

Derfor vil din sql sætning til projectstatus blive noget lignende med VB.net

"Select * from project where user = '& Session["SignIn"] &'"

/Jokke Jensen



[Redigeret d. 13/05-04 01:03:44 af Jacob Jensen]



--------------------------------
Hejsa
Det er lige meget om maaden jeg tjekker paa ikke er saerlig fornuftig. Det skal bare virke:-) Jeg ved ikke hvordan man sletter adressen til databasen.
Jeg skal bare have det rigtige projectstatus vist, naar de kommer hen paa den rigtige side.
Stine



--------------------------------
Hejsa
Det er lige meget om maaden jeg tjekker paa ikke er saerlig fornuftig. Det skal bare virke:-) Jeg ved ikke hvordan man sletter adressen til databasen.
Jeg skal bare have det rigtige projectstatus vist, naar de kommer hen paa den rigtige side.
Stine



Kan du ikke sende de 2 filer samt din database zippet til info@jj-multimediedesign.dk så skal jeg nok forsøge at få det til at virke...

/Jacob



Har du fået det til at virke ?



t