2009-12-10 5 views
0

Quelle est la durée réelle du délai d'expiration de la session ici est de 19 minutes?<% = Session.Timeout * 19 * 1000%>

<%= Session.Timeout * 19 * 1000 %> 



<script language="javascript" type="text/javascript"> 
    setTimeout('SessionTimeout()', <%= Session.Timeout * 19 * 1000 %>); 
    function SessionTimeout() { 
     alert(<%= "'Session time out!!'" %>); 
     window.location = "Default.aspx" 
    } 
</script> 

Répondre

0

pour clarifier, est-ce que vous essayez de le faire:

En JavaScript, 19 minutes après que l'utilisateur ouvre la page, vous souhaitez créer une alerte qui mettent en garde s l'utilisateur que sa session a expiré, puis redirigez-le vers la page Default.aspx.

Alors oui, comme d'autres l'ont dit, ce qui suit devrait travailler pour vous:

<script language="javascript" type="text/javascript"> 
    setTimeout('SessionTimeout()', 19 * 60 * 1000); 
    function SessionTimeout() { 
    alert(<%= "'Session time out!!'" %>); 
    window.location = "Default.aspx" 
    } 
</script> 

Si vous voulez que cela soit lié au délai d'attente de session ASP.NET, et être l'une minute de moins, alors ce qui suit devrait travailler pour vous:

<script language="javascript" type="text/javascript"> 
    setTimeout('SessionTimeout()', <%= Session.Timeout -1 %> * 60 * 1000); 
    function SessionTimeout() { 
    alert(<%= "'Session time out!!'" %>); 
    window.location = "Default.aspx" 
    } 
</script> 

Notez cependant que en le faisant de cette façon, si l'utilisateur appuie sur « OK » sur l'alerte à 1 minute, ils auront toujours une session active quand ils ont frappé défaut .aspx que la demande aura happene d dans la fenêtre de temporisation, et réinitialisera l'horloge.

1

Je ne crois pas que Session.Timeout est en train d'être défini ici.

2

Est-ce que ce n'est pas juste la valeur? Suivi par quelques maths. Sous IIS6 pour Session.Timeout: La valeur minimale autorisée est de 1 minute et la durée maximale est de 1 440 minutes. La valeur par défaut est 10 minutes

Source: http://msdn.microsoft.com/en-us/library/ms525473.aspx

Alors que les DOCS disent 10 - sur le test de la sortie de Session.Timeout Les rendements de valeur 20.

+0

Oui '<% =' écrit la valeur – pjp

+0

La durée de la session par défaut est de 20 min. –

+0

http://msdn.microsoft.com/en-us/library/ms525473.aspx - J'ai lu 10 c'est la raison principale pour les 10 minutes. Je peux cependant être complètement faux. – LiamB

1

La propriété Timeout est exprimée en minutes et est par par défaut égal à 20 et est généralement situé dans web.config:

<sessionState mode="InProc" cookieless="false" timeout="19" /> 
+0

La valeur par défaut est-elle pas 10 minutes? - http://msdn.microsoft.com/en-us/library/ms525473.aspx – LiamB

+0

J'ai créé une nouvelle application ASP.NET (.NET 3.5 SP1) et imprimé la valeur de Session.Timeout et il était 20. –

+0

jouer, intéressant de savoir pourquoi c'est. – LiamB

0

Non, il faut Session.Timeout (qui est mesurée en minutes) et la convertit en un nombre entier, où Chaque minute-unité correspond à 19000. En supposant que cela se termine par un delta de temps JavaScript (qui est mesurée en millisecondes), cela met chaque minute de timeout sur 19 secondes. Ce qui est un peu étrange.

Difficile de dire pourquoi le code le ferait sans contexte. Si l'intention de produire un delta de temps de milliseconde JavaScript représentant la longueur du temps Session.Timeout le fait, il faut lire comme:

var timeout= <%= Session.Timeout*60*1000 %>; 
+0

s'il vous plaît voir la question éditée – SmartestVEGA

+0

Ouais, je suis sûr que c'est une erreur. Ça devrait être * 60, pas * 19. – bobince

+0

ok..comment puis-je le régler à 19 minutes? – SmartestVEGA

0

Javascript setTimeout prend en milliseconde,
pour ainsi convertir « Session.Timeout » milliseconde = Session .Timeout * 60 * 1000

+0

Je veux régler le délai d'attente de 19 secondes en javascript est-il possible en éditant ce code? – SmartestVEGA

Questions connexes