Ho un sito Web che utilizza l'autenticazione e l'appartenenza moduli. Un utente deve avere i cookie abilitati per utilizzare il sito. Mi è stato chiesto di modificare il codice in modo tale che l'ID di sessione venga modificato non appena un utente esegue l'accesso. In questo modo verrà protetto da un attacco di Session Fixation (http://en.wikipedia.org/wiki/Session_fixation). Qualcuno sa come posso modificare l'ID della sessione senza perdere l'intera sessione? PHP ha un metodo specifico per farlo, ma non riesco a trovare un equivalente .NET.come cambiare l'ID di sessione dopo l'accesso in asp.net
risposta
Here's a blog post che parla di questo:
ASP.NET non supporta direttamente funzionalità per rigenerare una sessione ID. Vedere la documentazione relativa a il numero here. C'è un not-so quick and dirty way per impostare il valore
ASPNET_SessionID
su la stringa vuota e il reindirizzamento in modo da che il valore viene rigenerato.
Ho risposto a una domanda simile a Generating a new ASP.NET session in the current HTTPContext. Fondamentalmente dobbiamo modificare alcuni stati interni di SessionStateModule per poter rigenerare l'ID di sessione senza perdere oggetti nella Session. Ho usato reflection per impostare il campo _rqId sul nuovo ID e _rqSessionStateNotFound su true. Il rovescio della medaglia è che dobbiamo concedere "Full Trust" per l'applicazione.
La [risposta accettata] (http://stackoverflow.com/a/1419508/295686) fa riferimento a un articolo indirizzato a .NET 1.1 (e in realtà non risolve la fissazione della sessione, ma solo il vecchio riutilizzo dell'ID di sessione), ma questo la soluzione era più elegante e funzionava nella nostra applicazione .NET 4.5 (un sito MVC e un sito Web Forms). – mlhDev
Questa è una domanda davvero Io sto risorgere, ma ecco la soluzione:
var manager = new SessionIDManager();
bool redirected, isAdded;
manager.SaveSessionID(System.Web.HttpContext.Current,
"5vonjb4mtb1of2fxvhjvkh5d", out redirected, out isAdded);
// sessionId now equals "5vonjb4mtb1of2fxvhjvkh5d"
var sessionId = Session.SessionID;
Lo so, è passato un po 'di tempo. Ma abbiamo provato il tuo codice e non funziona per noi. sessionId non è uguale a "5vonjb4mtb1of2fxvhjvkh5d". – mosquito87
l'ho fatto con successo. sessionid viene modificato nel nuovo sessionid. – pinopino
Questo ci ha avvicinato ma non abbastanza vicino - ancora lavorando su di esso. Ciò aggiorna l'ID di sessione e invia l'aggiornamento dei cookie esattamente come ci si aspetterebbe, ma ci piacerebbe comunque utilizzare la sessione durante la stessa richiesta. Non siamo in grado di farlo in questo momento - sembra che il sacchetto di sessione sia il precedente; la prossima richiesta vede la nuova sessione ma i nostri valori non ci sono. – mlhDev
- 1. Powershell Set Lid Close Azione
- 2. sessione ASP.NET in Global.asax
- 3. Richiesta di sessione ASP.net in coda
- 4. Come funziona la sessione in asp.net?
- 5. Fine sessione in ASP.net MVC
- 6. Cancellare una sessione in ASP.NET
- 7. Avviso di timeout di sessione in ASP.NET
- 8. ASP.Net ReadOnly Sessione
- 9. Scadenza sessione MVC ASP.NET
- 10. ottieni l'ID di sessione in ASP.Net
- 11. timeout variabili di sessione in app asp.net
- 12. Variabili della sessione di hacking in Asp.NET
- 13. variabili Accesso Asp.Net di sessione in JS
- 14. Sessione time out impostazione in ASP.Net
- 15. Sessione ASP.NET e LINQ
- 16. Variabile sessione Asp.net
- 17. asp.net timeout sessione mvc
- 18. come cambiare la sessione scade il tempo in wordpress
- 19. Memoria sessione Asp.net
- 20. Prestazioni sessione ASP.NET
- 21. Sessione stato server ASP.NET e sessione InProc
- 22. Recupera variabili di sessione in ASP.NET MVC 4 (rasoio, vista)
- 23. ASP.NET: come accedere alla sessione dal gestore?
- 24. Protezione da dirottamento della sessione in ASP.NET
- 25. modalità stato sessione asp.net "SQLServer"
- 26. Specificando sola lettura sessione in ASP.NET MVC
- 27. Autenticazione utente senza stato sessione in ASP.NET
- 28. REST Servizio WCF e sessione in ASP.NET
- 29. Scenario failover provider di stato sessione ASP.Net
- 30. Come cambiare testo dopo tempo usando jQuery?
i ASLO pensare a questo, ma dopo rigenerato che, tutto l'oggetto in oggetto sessione perderà ... – MemoryLeak
Il il post sul tuo blog non è più disponibile. –