Comment faire pour rediriger vers la page d'ouverture de session lorsque l'État de session est terminée en asp.net mvc
J'ai un ASP.NET MVC4 demande où je suis, la mise en œuvre de sessionTimeout comme:
<configuration>
<system.web>
<sessionState timeout="2"></sessionState>
</system.web>
</configuration>
Et dans d'authentification:
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="1" />
</authentication>
</system.web>
</configuration>
Après que la session a expiré (2 minutes), j'ai besoin de rediriger vers la page d'ouverture de session, mais la redirection ne se produit pas.
Comment puis-je changer le code de sorte qu'il sera rediriger?
- Veuillez consulter le lien ci-dessous. Il peut vous aider. [La page de Login url][1] [1]: stackoverflow.com/questions/356982/...
Vous devez vous connecter pour publier un commentaire.
D'une manière qui est
En cas de Session Expire, dans chaque action que vous avez pour vérifier sa session et si elle est nulle alors rediriger vers la page de Connexion.
Mais c'est très mouvementée méthode
Pour surmonter cela, vous devez créer votre propre
ActionFilterAttribute
qui vont ce faire, vous avez juste besoin d'ajouter cet attribut dans chaque méthode d'action.Ici est la Classe qui remplace ActionFilterAttribute.
Alors en action juste ajouter cet attribut comme suit:
Cela vous fera du travail.
Je découvre moyen très simple de redirection de la Page de Login Lors de la fin de la session en MVC. J'ai déjà testé et cela fonctionne sans problèmes.
En bref, j'attrape la fin de la session en _Layout 1 minute avant et faire la redirection.
J'ai essayer de tout expliquer, étape par étape.
Si nous voulons la fin de la session de 30 minutes après et rediriger vers loginPage voir ce suit:
Modifier la configuration web comme ceci (fixé au 31 minutes):
Ajouter ce JavaScript dans
_Layout
(lors de la fin de la session 1 minute avant ce code permet de rediriger, il rend comte de temps après la dernière action de l'utilisateur, pas première visite sur le site)Voici mon Action de Fermeture de session, qui ne fait que la Fermeture de session et rediriger LoginIn Page
J'espère que c'est un très utile de code pour vous.
setTimeout
sur tout les appels AJAX que l'utilisateur puisse continuer à interagir avec la forme et la garder active sur le back-endIl y a une solution générique:
Disons que vous avez un contrôleur nommé Admin où vous placez le contenu pour les utilisateurs autorisés.
Ensuite, vous pouvez remplacer la
Initialize
ouOnAuthorization
méthodes de Admin contrôleur et écrire rediriger vers la page de connexion logique de délai d'expiration de session dans ces méthodes, comme décrit: