Toon posts:

[ASP.Net] Sessions raar probleem bij doorgeven

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb al wat gezocht op dit forum, en meerdere mensen blijken dit probleem te hebben, maar ik heb nog steeds geen werkende oplossing gevonden.

Ik heb een login script gemaakt, die een sessie "LoggedIn" de waarde true geeft als het inloggen gelukt is. Wanneer ik deze inhoud dan naar het scherm schrijf (op dezelfde pagina) dan zie ik de inhoud. Maar wanneer ik deze wil opvragen op een andere pagina dan toont hij niks.

Ik heb reeds "allow session cookies" aangezet in IE6.0
Zonet heb ik ook geprobeerd via cookieless op true te zetten in mijn web.config.
Maar nog steeds kan ik de sessie waarde niet opvragen op een andere pagina.

dit is mijn script:
PAGINA INLOGGEN.ASPX
Private Sub btnInloggen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInloggen.Click
Dim sUser, sPaswoord As String
sUser = txtUser.Text
sPaswoord = txtPaswoord.Text
Dim bLogin As Boolean
bLogin = Login(sUser, sPaswoord)
If bLogin = True Then
Session("LoggedIn") = True
Dim oGebruiker As clsGebruiker
oGebruiker = oConn.GetGebruiker(sUser)
Session("welkeGebruiker") = oGebruiker
'Response.Redirect("test.aspx")
Response.Write(Session("LoggedIn")) 'dit werkt op dezelfde pagina, niet op een andere
Response.Redirect("test.aspx")
ElseIf bLogin = False Then
Session("LoggedIn") = False
'Response.Redirect("login.aspx?err=login")
lblStatus.Visible = True
lblStatus.Text = "Login niet gelukt. Probeer opnieuw"
Response.Redirect("fdsjkl.aspx")
End If
End Sub

PAGINA TEST.ASPX:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Response.Write(Session("LoggedIn"))
If Session("LoggedIn") = True Then
Label1.Text = "login gelukt"
ElseIf Session("LoggedIn") = False Then
Label1.Text = "login niet gelukt"
End If
If Me.IsPostBack Then
Response.Write(Session("LoggedIn"))
End If
End Sub

Ik krijg dus steeds "login niet gelukt" te zien, als ik session loggedin wil writen naar het scherm dan toont hij ook niks. (duidelijk dat de sessie inhoud dus niet doorgegeven word) :(

Ik heb hier al 3 namiddagen op gezocht zonder een werkend resultaat. Hopelijk weet iemand van jullie wat het probleem is.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Waarom werk je met session voor authentication? Forms authentication werkt toch ook, en hier is het voor gemaakt.. Zelfs de mogelijkheid voor role based security is ingebouwd.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Dat zou ik kunnen doen, maar ik vraag mij toch af waarom dit niet werkt. Ik kan dus geen sessies doorgeven en zo hebben we het gezien, dus verwacht de docent dat we zo te werk gaan...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Iig bij mij werkt het; ik krijg netjes op de volgende pagina de sessie te zien.
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sUser, sPaswoord As String
        sUser = txtUser.Text
        sPaswoord = txtPassword.Text
        Dim bLogin As Boolean
        bLogin = Login(sUser, sPaswoord)
        If bLogin = True Then
            Session("LoggedIn") = True
            Response.Write(Session("LoggedIn")) 'dit werkt op dezelfde pagina, niet op een andere
            Response.Redirect("webform2.aspx")
        ElseIf bLogin = False Then
            Session("LoggedIn") = False
            'Response.Redirect("login.aspx?err=login")
            lblStatus.Visible = True
            lblStatus.Text = "Login niet gelukt. Probeer opnieuw"
            Response.Redirect("fdsjkl.aspx")
        End If

    End Sub

    Private Function login(ByVal user As String, ByVal password As String) As Boolean
        Return True
    End Function

[ Voor 87% gewijzigd door gorgi_19 op 17-04-2003 14:07 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
wat zou het probleem dan zijn?
Hoe kan ik asp.net opnieuw registreren zoals bij een nieuwe installatie?

Verwijderd

Topicstarter
Ik heb net eens asp opnieuw geregistreerd, maar het probleem blijft.
Nujuist heb ik ook eens mijn project op laptop getest, en de eerste keer gaf hij de sessie door, nu terug niet meer :(

please help iemand want ik kan gewoon niet verder werken zo :r

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Zitten er '_' characters of spaties in de url of in de virtual dir name? Indien ja -> verwijderen. De session cookies worden geassocieerd met de url, maar als die illegaal is onthoudt de browser je cookie niet. Een '_' in je url mag niet. IE en IIS vinden dat het gewoon kan, maar cookies werken dan niet. DIt heeft me ook een halve dag gekost voordat ik er achter was.

Ook in je browser even 'prompt' selecteren bij alle cookie requests, zodat je de cookies ook echt ziet en de inhoud ervan, zodat je kunt zien of je een cookie krijgt. IE6 is hier weer triest in, maar je kunt eventueel een gratis browsertje ophalen gebaseerd op mozilla oid, om dit even te testen.

Het ligt iig niet aan je code, het is puur dat er geen session object bewaard wordt, of beter: dat de browser bij het requesten van een ANDERE page geen cookie mee TERUGstuurt met daarin jouw sessionID zodat IIS het juiste sessionobject erbij kan zoeken.

[ Voor 9% gewijzigd door EfBe op 18-04-2003 11:31 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Verwijderd

Topicstarter
Zojuist heb ik mozilla geinstalleerd en cookie requests aagezet. Wanneer ik loginuser.aspx binnenkom, krijg ik een cookie request (expires: end of session).
Daarna tik ik user name end paswoord in, en druk op inloggen, dan gaat hij terug naar test.apx
Hierbij krijg ik geen cookie requests meer. test.aspx toont nog steeds "niet ingelogd"
directory name is http://localhost/loginuser.Aspx en http://localhost/test.aspx

  • EfBe
  • Registratie: Januari 2000
  • Niet online
En als je nou in loginuser.aspx, de sessionvariabele "Test" aanmaakt met daarin "Dit is een test" en op loginuser.aspx een link plaatst naar test.aspx, en in test.aspx Session("Test").ToString() doet ? Daarna ga je de loginuser.aspx laden, je krijgt een sessioncookie, je klikt dan op die link naar test.aspx en gaat dan dus naar test.aspx en moet de string zien. Als dat het geval is, werkt het sessiongebeuren wel. Je zult dan met de debugger door de code moeten steppen om te achterhalen wat er dan wel aan de hand is.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Verwijderd

Volgens mij is het een bugje ik heb er ook veel problemen meegehad.
Mijn website werkte volledig en toen ik een nieuw gedeelte toevoegde deed ie het opeens maar half niet meer.
Ik he gezorgd vor genoeg refreshes opdat de session zeker actief bleef maar dat is maar een tijdelijke oplossing natuurlijk...

Verwijderd

Topicstarter
EfBe: Als ik uw voorstel uitvoer dan krijg ik een System.NullReferenceException als ik op pagina test.aspx dit doe: lijn.toString (en lijn = Session("test") )
dit werkt dus niet

Verwijderd

Topicstarter
Net dit gevonden:

inloggen.aspx --> als login gelukt ik, redirect ik naar een pagina "loginverwerken.aspx", waar ik dan pas de session("LoggedIn") op true zet.
Daarna redirect ik naar test.aspx, waar ik bij de page load de inhoud van de sessie controleer, en afhankelijk hiervan een label de waarde "ingelogd" of "niet ingelogd" geef.
Dit werkt (_newSession = false bij debuggen), maar daarna ga ik terug naar de hoofdpagina, en als ik op de bestel knop klik van een item, dan ga ik naar een pagina ingelogdofniet.aspx. Op deze pagina zet ik bij de page load deze code:


code:
--------------------------------------------------------------------------------
Response.Write(Session.IsNewSession)
Response.Write(Session.SessionID)
If Session("LoggedIn") = True Then
Response.Redirect("winkelkar.aspx")
Else
Response.Redirect("nietingelogd.aspx")
End If
--------------------------------------------------------------------------------


Hier is _newSession = true dus de oude waarde wordt terug niet overgenomen.... en is het terug alsof ik niet ingelogd ben

  • EfBe
  • Registratie: Januari 2000
  • Niet online
klinkt als dat je ergens op de page waar je 'terug' komt de variabele reset. Het session systeem werkt wel kennelijk. Step er eens met de debugger doorheen.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com

Pagina: 1