Här kommer en liten tankenöt som jag gärna skulle behöva hjälp med. Nu är jag absolut ingen expert på detta men jag _tror_ det fungerar som jag beskriver. Efter att ha forskat lite kring sessioner och soap hittade jag följande uttalande:Sessioner och Webservices
Du har en (web)Server (S1) som tex är intranätservern.
Sedan finns (web)Server (S2) som är en webshop.
Browser (B) går till en sida på S1.
Sidan på S1 anropar en Webservice på S2. Anropet är en inloggningstransaktion.
S1 "redirectar" B till S2.
B surfar runt på S2 (inloggad genom S1)
Fråga 1.
Kommer B att vara inloggad? Skedde inloggningstransaktionen i B:s "session"?
Fråga 2.
Om det inte räcker med att redirecta, vad måste man då göra för att flytta sessionen (om det är en ny session vill säga).
Fråga 3.
Om det funkar, är det microsoftspecifikt i så fall?
Fråga 4.
När man använder webservices/soap, hur lagras sessionsid? När en server anropar en annan, lagras det per användare eller kan en server bara ha en session med en annan server?
Syftet är att kunna bygga en Single Sign On-lösning där användaren inte behöver logga in i x webshopar, utan en lokal server håller reda på användarnamn och lösenord och inloggningar.
Tacksam för alla förslagSv: Sessioner och Webservices
> S1 "redirectar" B till S2.
Ett tips kanske kan vara att inte skicka vidare användaren över huvud taget, utan låta S1 prata (SOAP kanske) med S2.
> Fråga 1.
> Kommer B att vara inloggad? Skedde inloggningstransaktionen i B:s "session"?
> Fråga 2.
> Om det inte räcker med att redirecta, vad måste man då göra för att flytta sessionen (om det är en ny session vill säga).
Beroende på vad du använder för inloggningsmetoder. OM webservrarna hänger i samma (windows-)domain och du använder någon av IIS-inloggningsmetoder så bör det fungera.
Om du använder Sessions så fungerar det inte.
Du kn bygga en egen Sessionslösning (cookie + databas). Då kan du skicka med ett användarID i URL när du skickar användaren från den ena servern till den andra.
> Fråga 3.
> Om det funkar, är det microsoftspecifikt i så fall?
Bygger du en egen lösning så har det inget med MS att göra.
> Fråga 4.
> När man använder webservices/soap, hur lagras sessionsid? När en server anropar en annan, lagras det per användare eller kan en server bara ha en session med en annan server?
Kan man ha en Session tillsammans med SOAP? Det får någon annan svara på!
> Syftet är att kunna bygga en Single Sign On-lösning där användaren inte behöver logga in i x webshopar, utan en lokal server håller reda på användarnamn och lösenord och inloggningar.
MS har ju byggt en sådan lösning med Passport så visst går det att göra!Sv: Sessioner och Webservices
"SOAP is designed to use stateless objects or functions.
It means you send SOAP request, server creates the instance of object in
memory and calls its specified function and then destroys the object.
Storing the object in Application or Session object in ASP won't help
because the Session ID which travels from server to client and back is not
maintained over 1 SOAP call."
Är det någon som kan bekräfta detta? Stämmer det, eller är det så man bör bygga sina lösningar (alltså utan sessioner när man jobbar med soap)?
/Martin