Attualmente sto implementando il mio provider di sessioni personali e vorrei sapere se il valore predefinito di 20 minuti è impostato nel provider di sessione se una voce nel file di configurazione non esiste, o se il mio fornitore di sessioni dovrebbe da un altro posto.Come ottenere il valore di timeout della sessione in un provider di sessione quando non è impostato nella configurazione?
risposta
Impossibile trovare il valore in un file di configurazione globale, ma è definito da qualche parte.
Utilizzando il codice seguente è possibile ottenere il valore di timeout della sessione, indipendentemente dal fatto che sia definito o meno nel web.config locale.
Configuration conf = WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath);
SessionStateSection section = (SessionStateSection) conf.GetSection("system.web/sessionState");
int timeout = (int) section.Timeout.TotalMinutes;
http://msdn.microsoft.com/en-us/library/aa478952.aspx
Secondo l'articolo che ho linkato sopra, se il valore di timeout non è impostato da nessuna parte, saranno utilizzati un valore predefinito di 20 minuti. Questo sembra essere il caso per entrambi i fornitori personalizzati e built-in.
Ho letto anche questo, ma ho bisogno del valore di Timeout corrente e 'HttpContext.Session' è' null'. –
http://stackoverflow.com/questions/1382791/asp-net-what-to-do-if-current-session-is-null se httpcontext.session è null, l'oggetto della sessione non viene avviato e non vi è nessun timeout e nessun'altra informazione relativa alla sessione. –
Sono abbastanza sicuro che sia stato costruito ** dopo ** chiamando il fornitore della sessione. –
Si può semplicemente utilizzare Session.Timeout per ottenere il valore
'HttpContext.Session' è' null'. –
In Global.asax, è possibile impostare
Session.TimeOut
in Session_Start o impostarlo in altro luogo nel codice.
La domanda riguarda l'ottenimento del valore e 'HttpContext.Session' è nullo. –
Hai provato a utilizzare HttpContext.Current.Session? – antar
In realtà avevo un 'HttpContext 'istanziato che rappresentava il contesto attuale. 'HttpContext.Current.Session' è quindi anche' null'. –
Prova con:
System.Int64 timeout = System.Web.HttpContext.Current.Session.Timeout; // The time-out period, in minutes
questo genererà un'eccezione di riferimento null quando non è stata avviata una sessione corrente (ad esempio durante l'avvio dell'app) –
- 1. timeout di appartenenza e timeout della sessione
- 2. Imposta il limite di timeout della sessione in joomla
- 3. Determina automaticamente il timeout della sessione Java
- 4. Come anticipare il timeout della sessione in ServiceStack
- 5. Come impostare il timeout della sessione in Laravel 4.2?
- 6. Come prevenire il timeout della sessione
- 7. Perché il timeout della sessione non funziona quando impostato su SqlServer?
- 8. Come aumentare il timeout della sessione della griglia di selenio?
- 9. Qual è il timeout della sessione predefinito in ASP.NET?
- 10. Come impostare il timeout della sessione in web.config
- 11. Timeout sessione SSO funziona in modo errato
- 12. Modifica scadenza sessione sessione e timeout sessione per una sessione CakePHP
- 13. Come impostare il timeout della sessione più di 20 minuti?
- 14. Come ottenere il valore della sessione utilizzando javascript
- 15. timeout sessione di sicurezza molla
- 16. Timeout sessione nel web.xml
- 17. Aumentare il timeout della sessione reCAPTCHA
- 18. Risposta timeout sessione in AJAX
- 19. Inizio sessione e filtro azione per sessione Gestione timeout
- 20. Prevenzione di un timeout sessione ASP.NET quando si utilizza Silverlight
- 21. asp.net timeout sessione mvc
- 22. Lo stato della sessione può essere utilizzato solo quando enableSessionState è impostato su true
- 23. Qual è il valore di timeout della sessione predefinito in ASP.NET?
- 24. Avviso di timeout di sessione in ASP.NET
- 25. timeout variabili di sessione in app asp.net
- 26. Come rilevare il timeout della sessione in Asp.net Core?
- 27. Springboot timeout di sessione app
- 28. Come impostare il timeout della sessione dopo il login passportjs?
- 29. Scenario failover provider di stato sessione ASP.Net
- 30. JSF - Il bean gestito con ambito sessione non ha re-iniettate dipendenze nella deserializzazione della sessione
Se si implementa il proprio fornitore di sessione, si dovrebbe considerare che si deve guardare nel file di configurazione per vedere se ci sono le impostazioni per il provider predefinito. Tuttavia dovresti cercare nella tua configurazione (per il tuo fornitore di sessioni) di scoprire il timeout per la tua implementazione. – Peter
L'ho preso in considerazione, ma voglio sapere se il 20 minuti è un dettaglio di implementazione nel provider di sessione predefinito o se è disponibile altrove. –