VB.Net Authentication cookie

Pagina: 1
Acties:

  • Brynnie
  • Registratie: Februari 2001
  • Niet online
Hei,

Ik heb een (volgens mij) vreemd probleem:

In een asp.net site (in vb.net) maak ik gebruik van een login component, waarbij de gebruiker kan aangeven dat hij/zij de login gegevens wil bewaren in een cookie (standaard remember me behavior).

Lokaal werkt alles perfect, maar op de shared hosting wordt de user na het verlopen van 1/2 van de sessie uitgelogd en lijkt het erop dat de authentication cookie gewist wordt.

Scenario:
Ik log in, pagina herkent mij
5 minuten na inloggen, refresh: pagina herkent mij nog steeds
9 minuten na inloggen, refresh: pagina herkent mij nog steeds
11 minuten na inloggen, refresh: pagina herkent mij niet meer en stuurt me naar login

RememberMe checkbox wel of niet aanvinken maakt geen verschil...

Gegevens:
ASP.Net 4.5.2
Session authentication mode: Forms
Session time-out: 20

In web.config staat onder <system.web>
code:
1
2
3
    <authentication mode="Forms">
      <forms defaultUrl="~/index.aspx" loginUrl="~/login.aspx" slidingExpiration="true" timeout="43200"></forms>
    </authentication>


Het vreemde is dat ik in de logs zie dat de session id wel steeds dezelfde blijft. Dus ook nadat ik uitgelogd word. Dat doet me vermoeden dat het verlopen van de sessie niet de oorzaak is van het uitloggen. Maar waarom word de user dan uitgelogd??

Op internet vind ik dat het misschien te maken heeft met de SlidingExpiration in web.config, maar ik snap in de eerste plaats niet waarom de authentication cookie niet gerespecteerd wordt. Wanneer ik de cookie gegevens opvraag, zie ik alles correct verschijnen, maar de browser (noch IE, noch Chrome, noch Safari) houdt er geen rekening mee...

Ik heb alles ingesteld met behulp van deze websites:
Oorspronkelijk deze tutorial gevolgd:
http://www.aspsnippets.co...rm-example-in-ASPNet.aspx
Extra info:
http://stackoverflow.com/...ed-website-authentication
Ik geef ook extra userdata mee, maar zelfs zonder dat, werkt het online niet en lokaal wel:
http://www.asp.net/web-fo...on-and-advanced-topics-vb

[ Voor 18% gewijzigd door Brynnie op 20-02-2015 00:41 ]


Acties:
  • 0 Henk 'm!

  • Brynnie
  • Registratie: Februari 2001
  • Niet online
Voor diegenen die in de toekomst met een gelijkaardig probleem kampen:

Het probleem lag blijkbaar aan het feit dat bij shared hosting, de machinekey in IIS op "AutoGenerate" staat, zodat de verschillende gehoste sites niet dezelfde machinekey gebruiken om bvb asp.net authentication cookies te coderen.

Dit betekent echter ook dat bij elke sessie start, de applicatie een nieuwe gegenereerde machinekey gebruikt. Met als gevolg dat tijdens eerdere sessies gecodeerde authentication cookies niet meer kunnen gedecodeerd worden (waren immers gecodeerd met andere machinekey), en de user dus als niet ingelogd beschouwd wordt.

Oplossing: Specifieke machinekey voorzien in je web.config file...