Hej jag håller på med en sida på vilken användare kan logga in. När de loggar in skapas en session: sessionen förnyas varje gång klienten har kontakt med servern, du behöver inte tänka på det.. Du blandar ihop sessioner, Session-objekt och sessionsvariabler. Tack så mycket. Ja, det slipper du. Koden flyttar objektpekaren i session("UserID") till session("UserID") dvs ingenting matnyttigt händer där... Jag har samma problem nån där ute som kan. Sessonen timar ut efter 20 min (default) eller till vad du har sätllt in den till i web.config. Alltså bör man spara användrnamnet nånstans t ex i en cookie.förnya session
session("UserID") = objRdr("UserID")
och sedan så skickas man vidare till den lösenordskyddade sidan:
Response.Redirect("userzone.aspx")
När man är inne på någon av medlemssidorna vill jag att varje gång en sida laddas skall sessionen förnyas. Den skall alltså förnyas även om sidan är IsPostBack.
Min fråga är om det bara är att göra såhär:
<code>
Sub Page_Load(S As Object, E As EventArgs)
session("UserID") = session("UserID")
End Sub
</code>Sv: förnya session
session("UserID") = session("UserID") gör absolut ingenting.Sv: förnya session
- En session är när en användare surfar till en webbplats.
- Servern använder Session-objekt för att hålla reda på sessionerna.
- Ett Session-objekt kan innehålla sessionsvariabler.
Sessionsvariabler har ingen timeout-funktionalitet, det är Sessions-objektet som har en timeout-funktionalitet. En timeout sker om användaren inte varit i kontakt med servern inom en viss förinställd tid, vanligtvis 20 mintuer.Sv:förnya session
Då slipper jag alltså använda:
<code>
Sub Page_Load(S As Object, E As EventArgs)
session("UserID") = session("UserID")
End Sub
</code>Sv: förnya session
Sv:förnya session
Jag förstår inte riktigt :s när användaren loggar in så skapas session tills tiden eller eller användaren loggat ut.
men variablerna försvinner under tiden användaren är inloggad!? jag brukar ta session("userName") = txtusername.text när användaren loggar in.
men som sagt session ("userName") blir tom??Sv: förnya session
<sessionState timeout="20" />Sv:förnya session
T.ex. Om man använder Forms Authentication kan man få tag i användarnamnet genom
User.Identity.Name()
Värdet lagras i en cookie i klientens webbläsare, (default ej persistent dvs i minnet i webbläsaren)
Diverse Session-specifik data bör alltid kontrolleras innan de används. Om de saknas (Is Nothing) då ska de slås upp igen (t ex i en databas) eftersom du kan aldrig vara säker på att sessionen lever kvar.