Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[ASP.NET] Custom auto logon

Pagina: 1
Acties:

  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Ik wil dat mijn gebruikers van een asp.net applicatie automatisch inloggen. Dit wil ik met behulp van een cookie.

In asp.net zit al iets ingebouwd om dit voor elkaar te krijgen (FormsAuthentication.SetAuthCookie(login.UserName, True)) maar ik heb het gevoel dat je weer uitgelogd bent op het moment dat ik de applicate update.( en hij is in ontwikkeling dus dat gebeurd vaak)

Het plaatsen van een cookie en het herkennen van de user gaat uitstekend. Het probleem is dat ik de user voor het ASP.NET systeem niet geauthenticeerd krijg.

Je zou Membership.ValidateUser("username","password") kunnen gebruiken maar dat lukt ook niet omdat het password gehashed in de database staat en ik deze niet in het cookie wil zetten.

Iemand een idee hoe ik een user ingelogd krijg zonder zijn wachtwoord in te laten typen?

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Stap 1: Lees de MSDN Documentatie. Daar staat echt alles wat je moet weten om met asp.net authorization en membership profielen aan de gang te gang. Dit is basis .NET 2.0 speelgoed en staat echt in elk boek over .NET 2.0 of hoger beschreven.

Stap 2: Probeer zelf eens wat te experimenteren ipv van direct naar een forum te hollen.

If it isn't broken, fix it until it is..


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Update op mijn vorige commentaar: Open Visual Studio MSDN documentatie (filter op unfiltered). Development tools and languages --> Visual Studio --> Visual Web Developer --> Securing asp.net websites --> begin hier met lezen. Ik denk dat je de rest van de week wel zoet bent....

If it isn't broken, fix it until it is..


  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Ik heb de membership provider zo aangepast dat hij herkend dat er een hashed password aangeboden word en deze dan niet nog een keer hashed. Hierdoor zou ik Membership.ValidateUser en FormsAuthentication.Authenticate kunnen gebruiken.

Membership.ValidateUser roept wel mijn custom membershipprovider aan maar zorgt er niet voor dat asp.net herkend dat de user is ingelogd.

FormsAuthentication.Authenticate roept niet eens mijn custom membershipprovider aan. Volgens de documentatie klot dat ook( Validates a user name and password against credentials stored in the configuration file for an application.)

Ps ASP.Net is voor mij geen speelgoed meer.

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Membership en forms authenticatie zijn ook totaal verschillende onderwerpen, maar kunnen wel beide de User property van het HttpRequest object zetten.

Middels een eigen geschreven HttpModule zou je het httpApplication.AuthrorizeRequest event kunnen afvangen, op die plaats de username via een encrypted cookie kunnen uitlezen en op basis daarvan ProfileBase.Initialize(username, true) kunnen aanroepen.

Die laatste functie call zorgt ervoor dat HttpRequest.User en HttpRequest.IsAuthenticated properties worden gezet.

FormsAuthentication kan hetzelfde, maar doet op via een andere weg.

If it isn't broken, fix it until it is..


  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
Op 1 of andere manier word er bij mij niks op authenticated gezet. Ik heb het nu anders opgelost.
Als een bezoeker terug komt op de site en niet Authenticated is probeer ik deze via een cookie te authenticeren. Als dat lukt dan roep ik FormsAuthentication.SetAuthCookie aan en redirect ik naar de rawUrl.

Asp.Net Herkend dan wel dat de gebruiker is ingelogd en op die manier werken alle loginviews ook zoals het hoort.

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Normaals je haalt twee soorten authenticatie door elkaar. FormsAuthenticatie is gebaseerd op de HTTP 401 header. In plaats van deze header te sturen (waardoor je een http 'popup' krijgt) stuurt de webserver je door naar een speciale login pagina. Via FormsAuthenticatie wordt deze popup vermeden. Deze methode stopt met werken zodra je anonymous access uitzet. Dan moet je namelijk via de popup de username en password doorgeven en komen die oo terug in HttpContext.User.

Daarnaast heb je sinds .NET 2.0 en hoger ook membership profielen elke worden aangeduid als website login. De mogelijkheden welke memberships brengt, werd in .NET 1.x geemuleerd via FormsAuthentication.

Ofwel netwerk authentication (forms/basic authentication) werkt via HttpContext.User en membership informatie vind je terug via HttpContext.Profile. Als je je eigen authorisatie module hebt geschreven is het vrij simpel om HttpContext.User en HttpContext.Profile gelijk te trekken.

Echter veel beheersomgevingen worden bescherm door anonymous access uit te zetten en dan is het een stuk complexer geworden (o.a. vanwege impersonation) om de User property te zetten. Profiles blijven gewoon werken.

If it isn't broken, fix it until it is..

Pagina: 1