2009-03-05 15 views
7

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.Passaggio dei dati di sessione tra le applicazioni ASP.NET

Grazie.

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

+0

L'autenticazione e la sessione sono 2 problemi separati (anche se correlati), ho risposto al bit di sessione sulla mia risposta – eglasius

risposta

1

Per il controllo della sessione di questo: http://www.codeproject.com/KB/aspnet/Sharing_session_state.aspx

Complemento con questo modo il cookie viene condiviso: http://mgrzyb.blogspot.com/2007/12/aspnet-and-subdomains.html

+0

Non penso che funzioni nei sottodomini, poiché il cookie di sessione ha il nome host completo per impostazione predefinita. – chris

+0

aggiornato con un collegamento a maggiori informazioni su come ottenere il problema del sottodominio – eglasius

+0

btw, so che funziona in questo modo, ma questo ragazzo afferma che puoi farlo più facilmente: http://forums.asp.net/t/ 1332808.aspx (non sono sicuro se lo fa, ma vale la pena provarlo) – eglasius

0

non è chiaro da mettere in discussione se sei solo preoccupato per accessi, o se si ha realmente bisogno di condividere i dati della sessione tra le applicazioni .

Assumendo questi ultimi, si potrebbe provare qualcosa di simile:

  • prima, assicurarsi che tutti i appliations sono in esecuzione nello stesso dominio. In caso contrario, tutte le scommesse sono disattivate. Non so se c'è 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.

0

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

Perché si desidera 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 applicazioni sono strettamente correlate, ad es.l'utente utilizza 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 es. basato sui servizi Web per lo scambio di informazioni.

Spero che questo aiuti.

Problemi correlati