Toon posts:

[ASP.net] Session management (cookies gerelateerd)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Om gebruik te maken van de ASP.NET session management (dus Session object) moet de browser cookies ondersteunen en uiteraard accepteren. ASP.NET session management maakt namelijk gebruik van cookies om de gegevens bij te kunnen houden. Maar stel dat een gebruiker de optie cookies enable uit zet dan is het dus niet meer mogelijk om gebruik te maken van de Session object. Om dit te kunnen testen heb ik de optie “block all cookies” aangezet. Daarnaast heb ik alle cookies etc verwijderd en vervolgens mijn pc opnieuw gestart. Vervolgens heb ik met de debugger gekeken of optie cookies inderdaad uitstaat. Dit heb ik gedaan met de onderstaande source code:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public void Application_OnPreRequestHandlerExecute(Object sender, EventArgs e)

{

 

//bekijk of browser cookies ondersteunen

if(Request.Browser.Cookies !=false)

{

....                                                                            
....
     //Setup TestCookie

if (Request.Cookies["cCookie"] == null) 
{
        
    HttpCookie acookie = new HttpCookie("cCookie");
    acookie.Values.Add("CookieStatus","ok");
    Response.AppendCookie(acookie);
}

string status = Request.Cookies["cCookie"].Value;
            
  if(status.Equals("CookieStatus=ok"))
 {
  //cookie geaccepteerd
 }
  else
  {
   //cookies niet geaccepteerd
  }


}



}


Ik heb de optie block all cookies aangezet maar toch zegt de visual studio debugger dat de browser gewoon cookies accepteren. (voor het debuggen nog een restart gemaakt van me pc).

Heb ik iets in de source code verkeerd gedaan of zorgt asp.net dat onderwater dit alles toch blijft werken?


alvast bedankt

[ Voor 3% gewijzigd door Verwijderd op 04-11-2005 16:26 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 25-04 12:00
Niet direct een antwoord op je vraag, maar als je gebruik wilt maken van sessies, en cookies worden niet ge-accepteerd, dan kent asp.net ook zoiets als 'cookie-less sessions'.
Het session - id wordt dan meegestuurd in de url.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op vrijdag 04 november 2005 @ 16:41:
Niet direct een antwoord op je vraag, maar als je gebruik wilt maken van sessies, en cookies worden niet ge-accepteerd, dan kent asp.net ook zoiets als 'cookie-less sessions'.
Het session - id wordt dan meegestuurd in de url.
Ja dat weet ik. Maar ik snap nog steeds niet waarom de browser (waar ik cookies accepteren uit heb staan) gewoon de cookies accepteren.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Is het niet zo dat Request.Browser.Cookies alleen kijkt in een lijst met browsers of de huidige browser cookies ondersteund? ( en dus niet of ze daadwerkelijk aan staan ).

Verder zet je je Cookie en lees je hem daarna meteen weer uit. Je cookie zal ook gewoon in je Cookie collection blijven zitten zolang je Request leeft.

Probeer eens een pagina te maken die een cookie zet en dan een andere pagina die de Cookie probeert uit te lezen. Omdat het dan aparte Requests zijn weet je zeker dat de Cookie uit de Request van de browser is gekomen en dat de browser dus het Cookie meestuurt.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
rwb schreef op vrijdag 04 november 2005 @ 16:54:
Is het niet zo dat Request.Browser.Cookies alleen kijkt in een lijst met browsers of de huidige browser cookies ondersteund? ( en dus niet of ze daadwerkelijk aan staan ).

Verder zet je je Cookie en lees je hem daarna meteen weer uit. Je cookie zal ook gewoon in je Cookie collection blijven zitten zolang je Request leeft.

Probeer eens een pagina te maken die een cookie zet en dan een andere pagina die de Cookie probeert uit te lezen. Omdat het dan aparte Requests zijn weet je zeker dat de Cookie uit de Request van de browser is gekomen en dat de browser dus het Cookie meestuurt.
het blokken van cookies van de locale website (local host) lukt niet. maar het blokken van cookies van andere internet sites lukken wel. ik wordt er echt helemaal gek van 8)7 |:( .

er wordt inderdaad een cookie gecreeerd (deze is te vinden in de cookies folder) en netjes uitgelezen. maar ik snap niet waarom hij dan nog een cookie aanmaakt terwijl ik block all cookies heb aangezet.

Dit gelt ook voor javascript. Ik heb bij active scripting gedisabled (om javascript uit te zetten). Het werkt wel voor de internetsites maar niet voor de locale website (local host). erg vreemd allemaal.

kan iemand mij vertellen hoe dit in elkaar zit?

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
staat hij niet bij de trusted sites ofzo. Of heb je het alleen voor de internet zone ingesteld?

De laatste optie is dat Visual Studio stiekem met je instellingen aan het spelen is voordat hij je site runt. Maar het lijkt me logischer dat je je instellingen niet voor Local Intranet hebt ingesteld en dat hij het daarom wel doet.

[ Voor 23% gewijzigd door Woy op 07-11-2005 14:32 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
rwb schreef op maandag 07 november 2005 @ 14:31:
staat hij niet bij de trusted sites ofzo. Of heb je het alleen voor de internet zone ingesteld?

De laatste optie is dat Visual Studio stiekem met je instellingen aan het spelen is voordat hij je site runt. Maar het lijkt me logischer dat je je instellingen niet voor Local Intranet hebt ingesteld en dat hij het daarom wel doet.
staat hij niet bij de trusted sites ofzo. Of heb je het alleen voor de internet zone ingesteld?

De laatste optie is dat Visual Studio stiekem met je instellingen aan het spelen is voordat hij je site runt. Maar het lijkt me logischer dat je je instellingen niet voor Local Intranet hebt ingesteld en dat hij het daarom wel doet.

je hebt gelijk. Heb inderdaad alleen voor internet en local intranet ingesteld. Wist niet dat localhost tot trust site behoord. :) hij werkt in iedergeval perfect.

Het werkt alleen niet als ik een html file met javascript vanaf de schijf runt maar wel als ik hem vanaf de browser start. erg vreemd allemaal.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Als je iets lokaal van de schijf runt heeft windows daar aparte security instellingen voor. Hoe je dat verder in kan stellen weet ik ook niet.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Volgens mij gaat dit stukje code niet werken. Request en Response zijn twee "statische" dingen. Ze zijn gezet bij iedere request en na een request wordt er een response gedaan die vervolgens weer tot een nieuwe request kan leiden. Dus als je nu in je response een cookie gaat zetten/maken, dan is het m.i. logisch dat hij nog niet in het "oude" request staat

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op dinsdag 08 november 2005 @ 10:24:
Volgens mij gaat dit stukje code niet werken. Request en Response zijn twee "statische" dingen. Ze zijn gezet bij iedere request en na een request wordt er een response gedaan die vervolgens weer tot een nieuwe request kan leiden. Dus als je nu in je response een cookie gaat zetten/maken, dan is het m.i. logisch dat hij nog niet in het "oude" request staat
Het zijn idd "statische" ( ze zijn niet static volgens mij trouwens ) dingen maar ze kunnen natuurlijk best een gemeenschappelijke refference naar een Cookie Collection hebben ( Niet getest overigens ).

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1