3


Est-ce que FormsAuthenticationModule détecte si ...?

FormsAuthenticationModule est utilisé pour l'utilisateur et le suivi des informations en utilisant le rôle cookie crypté.

Mais est-ce module contient également le code qui détecte en fait si la page Web demandant utilisateur ticket d'authentification et si non, redirige l'utilisateur à la page de connexion, ou est-il réellement UrlAuthorizationModule qui raconte FormsAuthenticationModule à redirect non autorisé/non authentifié utilisateur à la page de connexion?


Thanx

+1

L'authentification par formulaires ne connaît absolument rien à propos des rôles. Si vous voulez utiliser des rôles avec l'authentification par formulaire, vous devez l'enseigner vous-même sur les rôles. –

Répondre

4

Assez bizarrement, je viens de faire des recherches cette semaine.

Il s'avère que FormsAuthenticationModule effectue la redirection réelle dans le gestionnaire d'événements EndRequest. Cependant, il ne décide pas que la redirection devrait avoir lieu. Il effectue la redirection si le code de statut de réponse est 401 (non autorisé).

Le UrlAuthorizationModule est le lieu où la décision est prise (comme mentionné dans une autre réponse), mais tout ce qu'il fait est d'indiquer que la demande n'est pas autorisée en réglant le code d'état de réponse à 401.

Ainsi, il est en fait les deux modules en coordination qui font se rediriger vers la page de connexion.

+0

Assez juste :) En effet, la liste sur Koders semble indiquer que la redirection sur 401 se produit dans le AuthenticationModule (http://bit.ly/s7eiX). –

+0

J'ai remarqué cela dans la source Mono pour FormsAuthenticationModule, et je me demandais pourquoi il a attendu jusqu'à EndRequest. Cela a un sens parfait. Merci. –

3

Selon la documentation, la FormsAuthenticationModule ne

Définit l'identité de l'utilisateur pour une application ASP.NET lorsque l'authentification par formulaire est activée.

Cependant, en regardant autour d'autres (accessoires à Erv pour avoir signalé) le module d'authentification de formulaires est alors responsable de rediriger l'utilisateur vers la page de connexion en accrochant dans EndRequest événement de l'application

Cela signifie qu'il a rien à voir avec des rôles - les rôles sont gérés par le RoleManagerModule

Ainsi, le UrlAuthorizationModule utilise le module d'authentification (c.-à-formes, Passport/direct, Windows, etc) et fournisseur de rôle (en utilisant quel module de rôle est un ppropriate) qui sont configurés dans la configuration Web pour appliquer l'accès, et si le CheckUrlAccessForPrinciple qui vérifie réellement les droits d'accès des utilisateurs renvoie la valeur false, une erreur 401 est générée, et cela retourne ensuite à ASP.NET pour la gérer. L'application déclenche ensuite l'événement EndRequest, qui est récupéré par FormsAuthenticationModule qui redirige finalement l'utilisateur vers la page de connexion par défaut définie dans la section d'authentification Forms du fichier web.config.

+0

merci à tous pour votre aide bienveillante – SourceC

Questions connexes