[ASP.NET C#] cookieless onthoud session niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik loop al een tijdje tegen dit gezanik aan. Ik heb een web applicatie die gebruik maakt van cookieless, alleen elke keer dat ik er een session variabele instop is deze alweer kwijt bij de volgende postback. Ik heb google al dagen lang hierover geplaagd maar daar werd ik ook niet wijzer van omdat ik mijn specifieke probleem niet tegen kom.

Weet iemand misschien waarom Session variabelen steeds kwijtraken bij cookieless? en misschien ook hoe het te fixen is?

b.v.d.

*edit* bij nader onderzoek worden session variabelen helemaal niet onthouden.

[ Voor 7% gewijzigd door Verwijderd op 11-06-2010 17:08 ]


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Je zult toch iets meer informatie moeten geven, want dis is giswerk. Hoe ziet je web.config eruit? Standaard? of heb je er veel aan verbouwt mbt session management?
Zie je daadwerkelijk het sessie ID in je adresbalk staan als je over site heen navigeert?
etc etc.

Ik neem aan dat je deze link al gelezen hebt? : linky

Acties:
  • 0 Henk 'm!

  • Kwastie
  • Registratie: April 2005
  • Laatst online: 08-09 15:51

Kwastie

Awesomeness

disclaimer: Ik heb geen kennis van ASP.NET.

Bij PHP word er voor de server-session een 'SESSION_ID' cookie aangemaakt, zo weet hij welke sessie bij welke gebruiker hoort. Ik kan me goed voorstellen dat er in ASP.NET iets soortgelijks gebruikt om een koppeling te maken tussen server-session en de client-session.

Wat er als alternatief word gebruikt bij PHP is bij iedere HTTP request een SESSION_ID meesturen in de url, maar dit is heel erg lelijk tbh. (want een cookie doet dit eigenlijk al, alleen zit hij niet in de url)

Waarom wil je trouwens geen gebruik maken van Cookies?

[ Voor 7% gewijzigd door Kwastie op 11-06-2010 21:15 ]

When I get sad i stop being sad and be awesome instead


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Kwastie schreef op vrijdag 11 juni 2010 @ 21:14:
disclaimer: Ik heb geen kennis van ASP.NET.
...

Wat er als alternatief word gebruikt bij PHP is bij iedere HTTP request een SESSION_ID meesturen in de url, maar dit is heel erg lelijk tbh. (want een cookie doet dit eigenlijk al, alleen zit hij niet in de url)

Waarom wil je trouwens geen gebruik maken van Cookies?
Dat doet asp.net ook.

Overigens is het niet alleen lelijk, het wordt ook nog eens kinderspel om je sessie te hacken. Dus het is nog een veiligheidsrisico ook.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ok, iets meer info wat ik vergeten was te vermelden :P

Ik heb een project overgenomen van iemand, deze had cookieless en dat heb ik dus ook maar overgenomen (moest i.v.m. prutswerk het hele zaakje overdoen).

ik heb van mijn baas gehoord dat cookieless niet een must is, maar zelfs MET cookies (en dus hiermee de <sessionstate> tag uit de web.config) werkt het helaas niet.

linkje ben ik inderdaad een paar keer tegen gekomen maar ze zeggen allemaal "ja, je doet Session["foo"] = "bar" en het is opgeslagen" maar dat is hier niet het geval helaas.

verdere details:
Ik heb een default web.config met 2 appsettings toegevoegd, deze zijn twee paden naar fysieke bestanden die hier niet aan gelinkt zijn.
Windows 7 64bit met een x86 app-pool i.v.m. interop dll's

hopelijk kunnen jullie hier meer mee

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11-09 12:47

gorgi_19

Kruimeltjes zijn weer op :9

Even voor de vorm: Gebruik je een frames-pagina? :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
nee, dat niet wel een aantal updatepanels (waaruit ook de sessie variabele wordt neergezet)

Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Geen idee waarom je session state niet word bewaard. Of je nu frames of updatepanels gebruikt zou niet uit moeten maken. Ik vermoed dat er gewoonweg iets verkeerd zit in je configuratie. Weet je zeker dat deze correct is ivm session state management? probeer anders eens een nieuw asp.net project te starten en de web.config die daaruit gegenereerd wordt te vergelijken met die van je huidig project.

En anders lees dit eens, Het is gedateerd, maar nog steeds relevant.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb ze even naast elkaar gelegd, is niet veel anders.

bij mijn project zitten een paar appsettings bij en een paar extra assemblies. De rest is nagenoeg identiek.
zijn er misschien nog alternatieven voor session om een dataset in neer te knallen? ik zat te denken om het in een hidden textbox of viewstate neer te zetten. De dataset kan maximaal 5000 rows bevatten dus of dit een goed idee is ben ik niet zeker van.

Acties:
  • 0 Henk 'm!

  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02 21:38

TheNameless

Jazzballet is vet!

Vreemd verhaal, kan je eens je <system.web/> gedeelte van je web.config posten?

Ducati: making mechanics out of riders since 1946


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
XML:
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
42
43
44
45
46
47
48
49
50
<system.web>
        <sessionState cookieless="true"/>
        <!-- 
            Set compilation debug="true" to insert debugging 
            symbols into the compiled page. Because this 
            affects performance, set this value to true only 
            during development.
        -->
        <compilation debug="true">
            <assemblies>
                <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                </assemblies>
        </compilation>
        <!--
            The <authentication> section enables configuration 
            of the security authentication mode used by 
            ASP.NET to identify an incoming user. 
        -->
        <authentication mode="Windows"/>
        <!--
            The <customErrors> section enables configuration 
            of what to do if/when an unhandled error occurs 
            during the execution of a request. Specifically, 
            it enables developers to configure html error pages 
            to be displayed in place of a error stack trace.
-->
        <customErrors mode="Off" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm"/>
            <error statusCode="404" redirect="FileNotFound.htm"/>
        </customErrors>
        <pages>
            <controls>
                <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            </controls>
        </pages>
        <httpHandlers>
            <remove verb="*" path="*.asmx"/>
            <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
        </httpHandlers>
        <httpModules>
            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </httpModules>

Met of zonder cookies, geen van beiden slaat de sessie variabelen op.
Ze worden wel opgeslagen, maar na een postback zijn ze weer weg.

Acties:
  • 0 Henk 'm!

  • Greyfox
  • Registratie: Januari 2001
  • Laatst online: 11-09 13:40

Greyfox

MSX rulez

Staat cookies in de browser uit?

MSX 2 rulez more


Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 18:27
Heb je niet je sessie timeout heel kort staan in IIS? Je specificeert hem niet in je web.config, volgens mij wordt dan de instelling van IIS gebruikt.

Hail to the king baby!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@Greyfox:
het is cookieless, dit zou betekenen dat cookies zonder problemen uit zou moeten kunnen staan

@urk_forever
Sessie staat op 20 minuten voor zover ik het kan zien, maar ook op een andere server worden de sessies ook niet opgeslagen

Acties:
  • 0 Henk 'm!

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 20-08 15:12

giMoz

iets met meester...

Doe je ze niet per ongeluk overschrijven (in de page_load bijvoorbeeld?)

Of niet natuurlijk...


Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 18:27
Als het op een andere server ook fout gaat lijkt het mij aannemelijk dat de fout ergens in je code zit. Het je nergens een Session.Abandon(); staan?

Hoeveel geheugen heeft de server? Als jij een DataSet van 5000 rows (bedoel je trouwens geen DataTable?) in de sessie opslaat met veel gelijktijdige gebruikers loopt de server misschien uit zijn geheugen?

Misschien is het handig als je wat, relevante, code laat zien?

[ Voor 8% gewijzigd door urk_forever op 16-06-2010 11:57 ]

Hail to the king baby!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb net alles nogmaals letter voor letter doorgenomen, de fout zat hem in 1 lettertje

C#:
1
Session["Result"]
vs
C#:
1
Session["Results"]


best stom dat ik zoiets kleins een paar dagen lang achter elkaar over het hoofd zie 7(8)7 |:(

Acties:
  • 0 Henk 'm!

  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02 21:38

TheNameless

Jazzballet is vet!

Verwijderd schreef op woensdag 16 juni 2010 @ 11:58:
Ik heb net alles nogmaals letter voor letter doorgenomen, de fout zat hem in 1 lettertje

C#:
1
Session["Result"]
vs
C#:
1
Session["Results"]


best stom dat ik zoiets kleins een paar dagen lang achter elkaar over het hoofd zie 7(8)7 |:(
:D

Is wel een goede reden om van die "magic strings" constants te maken ;)

Ducati: making mechanics out of riders since 1946


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
Verwijderd schreef op woensdag 16 juni 2010 @ 11:58:
Ik heb net alles nogmaals letter voor letter doorgenomen, de fout zat hem in 1 lettertje

C#:
1
Session["Result"]
vs
C#:
1
Session["Results"]


best stom dat ik zoiets kleins een paar dagen lang achter elkaar over het hoofd zie 7(8)7 |:(
echt he.... die fout maak je dus nooit meer ? :+

Acties:
  • 0 Henk 'm!

Verwijderd

D-Raven schreef op woensdag 16 juni 2010 @ 12:16:
[...]


echt he.... die fout maak je dus nooit meer ? :+
Of je maakt gebruik van explicit types:

C#:
1
2
3
4
5
public MijnKlasse MijnKlasse
{
  get { return (MijnKlasse)Session["MijnKlasse"]; }
  set { Session["MijnKlasse"] = value; }
}


Dan kun je je nooit meer vergissen en wil je je sessie variabele naam aanpassen, dan hoef je dit maar op één plek te doen ipv dat je overal Session["MijnKlasse"] gebruikt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is de eerste keer dat ik die fout maak, en hopelijk ook de laatste keer. Jemig wat heb ik me kapot gezocht :+
Pagina: 1