Halloj i stugan!
Jag håller på¨att bygga ett system där man måste registrera sig för att få tillgång till ett visst material.
Jag använder FormsAuthentication och undrar hur jag ska kunna kolla användarens id-nr på olika sidor inom systemet.
Jag har läst att det ska finnas en cookie (eller hur?) som den här FormsAuthentication-historian skapar som innehåller användarnamnet.
Men om det endast finns sparat i en cookie är det ju inte svårt för användaren att gå in och ändra sitt cookievärde och få tillgång till information han inte ska ha?!
Hur brukar ni lösa detta? Kanske man ska kryptera värdet i kakan, eller köra med någon session eller - vad?
Vet inte om man ska säga att det är något fel på session utan att det finns bättre alternativ, dock har sessions en nackdel, data sparas i serverns internminne, många användare = stor minnesanvändning.
Halloj i stugan!
Jag använder FormsAuthentication och undrar hur jag ska kunna kolla användarens id-nr på olika sidor inom systemet.
Jag har den här koden för det:
Imports System.Web
Imports System.Data
Imports System.Data.OleDb
Namespace CyberZone.Data
Public Class UserInfo
Public Overloads Shared Function GetUserid()
Dim CnStr As String = "Din databaskoppling"
Dim SQL As String = "SELECT id FROM tblUsers WHERE Username = '" & HttpContext.Current.User.Identity.Name & "'"
Try
Dim Cn As New OleDbConnection(CnStr)
Cn.Open()
Dim Cm As New OleDbCommand(SQL, Cn)
Dim Result As Object
Result = Cm.ExecuteScalar()
Cn.Close()
Return CStr(Result)
Catch ex As Exception
Throw ex
End Try
End Function
Public Overloads Shared Function GetUserid(ByVal Username As String)
Dim CnStr As String = "Din databaskoppling"
Dim SQL As String = "SELECT id FROM tblUsers WHERE Username = '" & Username & "'"
Try
Dim Cn As New OleDbConnection(CnStr)
Cn.Open()
Dim Cm As New OleDbCommand(SQL, Cn)
Dim Result As Object
Result = Cm.ExecuteScalar()
Cn.Close()
Return CStr(Result)
Catch ex As Exception
Throw ex
End Try
End Function
End Class
End Namespace
Om man anropar GetUserid() returneras id-numret för personen i sig och om man anropar GetUserid("Pelle") kommer id-numret för användaren "Pelle".
Vet inte om man ska säga att det är något fel på session utan att det finns bättre alternativ, dock har sessions en nackdel, data sparas i serverns internminne, många användare = stor minnesanvändning.
Finns altenativ till det. Det bästa är väl i så fall att spara det i MSsql men även det har ju sina nackdelar!
Vet inte om man ska säga att det är något fel på session utan att det finns bättre alternativ, dock har sessions en nackdel, data sparas i serverns internminne, många användare = stor minnesanvändning.
Finns altenativ till det. Det bästa är väl i så fall att spara det i MSsql men även det har ju sina nackdelar!
Ja, eller lägga det på en egen server, fast försöker låta bli att använda sessions då det inte är absolut nödvändigt.
Finns det något sätt att spara något mer värde om användaren i cookien förutom "Current.User.Identity.Name" ? Annars måste det ju göras en databasfråga för varje sida där man vill ha fram lite mer användarinfo.