[ASP.NET] Single sign-on in meerdere applicaties debuggen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 09-09 10:50
Hoi,

Ik heb een tijdje een tweetal websites draaien (ASP.NET applicaties) die beiden over hetzelfde onderwerp gaan en vrijwel dezelfde users hebben. Helaas heb ik toen de keuze gemaakt om een Access database te gebruiken (snel en gemakkelijk), waardoor beide applicaties een losse database hebben. Dat is een tijd goed gegaan maar langzaam wil ik de applicaties toch graag wat meer verenigen. Ik kom steeds meer plaatsen tegen waar ik dingen dubbel in de twee databases heb, meest belangrijkste voorbeeld zijn de gebruikers. Veel gebruikers hebben op beide websites een account die verder eigenlijk niet aan elkaar gekoppeld zijn, waar dat wel zou moeten.

Vandaar dat ik nu aan het overstappen ben op een MySQL database, waar ik hopelijk beide applicaties (en mogelijk toekomstige applicaties) in een enkele database kan stoppen.

Ik zou nu uiteraard wel graag een enkele centrale login website willen gebruiken die dan voor beide websites geldt. Met simpel googlen heb ik snel kunnen vinden dat dat heel makkelijk is, blijkbaar hoef ik alleen maar even handmatig de login cookie op te vangen die daar een Domain property in te zetten. In mijn geval heb ik (even als voorbeeld) twee applicaties app1.nickthissen.nl en app2.nickthissen.nl, en een login applicatie op login.nickthissen.nl. Nu kan ik op de login applicatie een login cookie voorzien van Domain = "nickthissen.nl" en dan geldt dit ook voor de andere twee applicaties, mooi.

Even voor de volledigheid, het gaat op het moment dus over drie applicaties met Forms authentication:
login.nickthissen.nl (bevat een login pagina, register pagina, etc)
app1.nickthissen.nl (login verwijst naar login.nickthissen.nl)
app2.nickthissen.nl (login verwijst naar login.nickthissen.nl)


Om de login van app1 en app2 naar mijn eigen login applicatie te verwijzen heb ik in de web.config van beide applicaties de authentication setting moeten wijzigen naar het volgende
XML:
1
2
3
    <authentication mode="Forms">
      <forms loginUrl="http://login.nickthissen.nl/Pages/Registration/Login.aspx" timeout="2880"/>
    </authentication>

Standaard wijst deze uiteraard naar een pagina in de huidige applicatie (via "~/Account/Login.aspx" of iets dergelijks), maar in mijn geval heb ik dus graag dat hij naar mijn login applicatie gaat.


Nou, allemaal leuk en aardig, en volgens mij werkt het prima. Echter heb ik nu een probleem met testen en debuggen... Als ik de applicaties nu lokaal draai, dan werkt het natuurlijk niet. De login pagina verwijst dan nog steeds naar de (niet lokale) login.nickthissen.nl, terwijl de applicatie die ik aan het testen ben op localhost draait. De cookie met Domain setting 'nickthissen.nl' werkt dus niet, en ik kan niet inloggen als ik wil testen...


Ik kom er nu even niet achter hoe ik een dergelijke applicatie (of applicaties) tegelijk kan testen, waar een login op localhost nu ook naar de login applicatie die op localhost draait verwijst... Ik mis misschien iets heel voor de hand liggends, maar ik heb geen idee waar ik moet zoeken. Normaal heb ik mijn login gewoon op de huidige applicatie en heb ik dit probleem niet omdat ik dan gewoon "~" kan gebruiken.


Of zit ik nu gewoon veel te lastig te doen en moet ik in app1 en app2 beide een aparte login maken, die gewoon met dezelfde database communiceert? Dat zou natuurlijk ook een optie zijn, maar ik vind het mooier om een aparte login te hebben (dan hoef ik de login en registreer zooi niet in twee apps te hebben bijvoorbeeld).

Bedankt voor enige tips!

Mijn iRacing profiel


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Makkelijkst is gewoon even in je hosts file "login.nickthissen.nl" vlammen met 127.0.0.1 (of het IP van je dev-server oid)

Ik draai zelf een Windows (domain controller) Server welke tevens als DNS fungeert; daarin heb ik m'n eigen domeinen met hun A/CName-records staan die allemaal resolven naar interne IP's (webdev bak etc.). Zolang de gegevens maar correct in de DNS van je hoster (of elders) staan maakt 't voor de buitenwereld niets uit en intern kun je lekker makkelijk zaken aanpassen zonder in te zitten over of je iets breekt of niet of steeds je hosts-file in te moeten duiken (inc. alle rompslomp van 't kreng moeten openen/opslaan als administrator etc.)

[ Voor 6% gewijzigd door RobIII op 11-04-2012 18:41 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:44

gorgi_19

Kruimeltjes zijn weer op :9

Daarnaast kan je ook meerdere versies van je web.config maken, aan de hand van je build-mode (web.config.debug en web.config.release) of bepaalde secties in aparte .config bestanden plaatsen.

Ik ben ook wel benieuwd waarom je van Access naar MySQL bent gegaan en niet maar MS SQL Express :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 09-09 10:50
Nou ja, ik heb het een tijd zitten proberen, het leek wel te werken maar ik kreeg het toch niet helemaal hoe ik wilde. Ik heb nu maar bij app1 en app2 een aparte login pagina, die nog steeds op dezelfde database werkt, en dat werkt prima. Toch bedankt voor de tips.

Mijn iRacing profiel


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
NickThissen schreef op zondag 15 april 2012 @ 16:10:
maar ik kreeg het toch niet helemaal hoe ik wilde.
Want?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 08:50
Je kan gewoon een SQL membershipprovider toevoegen en die gebruiken in de config van beide sites, dan werkt het automagisch (zolang je de cookies ook op subdomain's laat gelden).

[ Voor 17% gewijzigd door creator1988 op 16-04-2012 10:56 ]

Pagina: 1