Passaggio dei dati di sessione tra le applicazioni ASP.NET

Abbiamo diverse applicazioni ASP.NET distribuite su alcuni server. Esiste un modo standard per riutilizzare i dati di sessione o qualche altro metodo per non richiedere agli utenti di accedere alla prossima applicazione quando si passa da un’applicazione all’altra se sono già autenticati? Spero che ci sia un modo migliore di fare ciò che voi conoscete. Sento che dovrebbe esserci qualcosa di facile che mi manca.

Grazie.

Modifica: per essere più chiaro, le informazioni principali nella sessione che vorrei passare sono l’userid autenticato, ma probabilmente anche altre variabili di sessione.

Per la sessione controllare questo: http://www.codeproject.com/KB/aspnet/Sharing_session_state.aspx

Complementare con questo in modo che il cookie sia condiviso: http://mgrzyb.blogspot.com/2007/12/aspnet-and-subdomains.html

Non è chiaro dalla tua domanda se sei solo preoccupato per gli accessi, o se hai davvero bisogno di condividere i dati di sessione tra le applicazioni.

Supponendo che quest’ultimo, si potrebbe provare qualcosa di simile:

  • per prima cosa, assicurati che tutte le app siano in esecuzione nello stesso dominio. In caso contrario, tutte le scommesse sono distriggerste. Non so se esiste un modo semplice per configurare la proprietà del dominio del cookie di sessione, quindi potresti doverlo fare da te, impostando la proprietà del dominio del cookie sul dominio:

    Response.Cookies [“ASP.NET_SessionId”]. Domain = “.mydomain.com”;

  • è necessario assicurarsi che ogni applicazione sia configurata per utilizzare un server di stato comune o una sessione con db-backed.

La condivisione di un collegamento tra le applicazioni (di cui sopra) è un gioco di palla piuttosto diverso rispetto alla condivisione di sessioni ASP.NET tra le applicazioni.

Perché vuoi condividere sessioni tra le applicazioni?

La sessione ASP.NET è una metafora dell’interazione corrente dell’utente con un’applicazione ASP.NET. Esiste in ASP.NET per darci un posto dove archiviare i dati di stato temporanei tra le varie richieste di pagina che un utente fa durante l’utilizzo dell’applicazione.

Se le tue applicazioni sono strettamente correlate, ad esempio l’utente usa entrambi allo stesso tempo, o quasi allo stesso tempo, potresti considerare di unirli in un’unica applicazione ASP.NET.

Se le tue applicazioni non sono strettamente correlate, forse dovrebbero condividere lo stesso database come mezzo per scambiare dati, o usare un’API, ad esempio basata su servizi Web, per scambiare informazioni.

Spero possa aiutare.