2009-12-04 6 views
0

J'utilise ASP.NET.Rediriger la page lorsque la session est perdue?

Si mon temps de sessions sur je veux de rediriger la page vers une autre URL: Dites la page d'accueil ....

Sur ma page je fais usage d'un GridView qui utilise des variables de session. Si la durée de la session expire (actuellement à 60min) et que l'utilisateur clique sur une ligne dans GridView, je veux le rediriger vers la page d'accueil de mon site. Est-ce que cela peut être fait, comment ferais-je cela?

Merci d'avance!

+0

ne peut vous simplement vérifier si la variable de session existe et appeler response.redirect à la page d'accueil? –

Répondre

6

Stocker une valeur dans la collection de sessions. Ensuite, vérifiez s'il est toujours là à la demande de l'utilisateur suivant. Sinon, rediriger.

// Mettez un peu marqueur de la session

Session["IsOldSession"] = true; 

// Puis, plus tard ...

if (Session["IsOldSession"] == null) 
    Response.Redirect ("~/OMG.aspx"); 
+0

+1 pour exactement ce que je ferais – Oded

+0

Dactylographié ma réponse et vu celui-ci était là! : D –

+0

Ai bien sûr que vous avez raison, stupide moi. Je vais ajouter ce code lorsque l'utilisateur clique sur l'événement GridView SelectedIndexChanged! – Etienne

1

Sinon, vous pouvez simplement compter sur le le nombre d'éléments de la collection de session via l'utilisation Session.Contents.Count. Je préférerais cette route sur l'instanciation d'un élément supplémentaire à persister dans la collection d'état de session.

If Session.Contents.Count = 0 Then 
    Response.Redirect("~/default.aspx") 
End If 
0

Ou tout simplement le faire dans votre Page_Init()

if (Session.IsNewSession) 
{ 
    Response.Redirect("homepage.aspx"); 
} 
Questions connexes