2008-11-30 12 views
1

J'ai défini un contrôleur pour forcer l'authentification à l'aide de l'attribut [Autoriser]. Lorsqu'une session expire, la requête est toujours transmise et exécutée au lieu de forcer une redirection. J'utilise FormsAuthentication pour connecter et déconnecter les utilisateurs.Authentification ASP.NET à l'aide de [Autoriser]

Des idées sur la façon de contrôler cela?

Exemple:

[Authorize] 
public class ProjectsController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 
+0

J'allais poser cette question séparément, mais comme nous sommes ici, est-ce que ASP.NET MVC a intégré l'authentification shizzle ? Merci d'avance. – Tablet

+0

Dans un test rapide et sale, cela a bien fonctionné pour moi. Pouvez-vous poster votre fichier Web.Config? – MrJavaGuy

+0

mon web.config standard de la boîte avec l'ajout simple: \t \t \t \t \t \t \t IEnumerator

Répondre

1

Encore une fois, ASP.NET MVC s'appuie sur ASP.NET traditionnel. Oui, il y a un "shizzle d'authentification intégré" ... c'est le exact même API d'adhésion qu'utilise ASP.NET traditionnel.

Signification ... autre chose est le problème ici. Peut-être avez-vous des sessions glissantes activées ... ou peut-être que le délai d'attente est plus élevé que prévu, etc.

+0

j'ai dû désactiver les sessions de glisse et il semble de le résoudre. – IEnumerator

1

Pour suivre les sessions utilisateur ASP.NET utilise le cookie ASP.NET_SessionId. Pour suivre les utilisateurs authentifiés, ASP.NET utilise le cookie ASPXAUTH (par défaut).

Quand une fois la session sur le cookies ASP.NET_SessionId ne peuvent plus être envoyés par le client, mais le cookie ASPXAUTH est encore envoyé ce qui pourrait expliquer pourquoi votre action est rendue.

Pour remplacer les valeurs d'authentification des formulaires par défaut, vous pouvez jeter un œil à here. Je vous suggère également d'utiliser l'extension firebug pour voir exactement quels cookies sont envoyés par le client.

0

Basé sur votre autre question, je suppose que vous n'arrivez pas à ce contrôleur du tout.

+0

J'arrive dans le contrôleur mais je suis bloqué dans la méthode Index, donc je ne peux pas utiliser le même contrôleur pour d'autres méthodes, car ils retournent tous à la méthode Index. Exemple: un chemin comme/projects/edit/1 afficherait le formulaire à la méthode ProjectController Index() – IEnumerator

+0

On dirait que vous avez soit un formulaire dans un formulaire sur votre page, soit une mauvaise configuration de routage. Pouvez-vous publier vos itinéraires et la source d'affichage de la page en question? – MrJavaGuy

Questions connexes