Intercepter une tentative d'accès à une ressource non autorisée
Le
Julian Alvarez

Bonjour,
j'ai un site web qui utilise membership et les roles.
J'aimerai savoir comment on peut intercepter et renvoyer vers une page autre
que celle de login, quand un utilisateur essaye d'atteindre une ressource
dans un repertoire alors que ses rôles ne lui y autorisent pas.
Merci.
j'ai un site web qui utilise membership et les roles.
J'aimerai savoir comment on peut intercepter et renvoyer vers une page autre
que celle de login, quand un utilisateur essaye d'atteindre une ressource
dans un repertoire alors que ses rôles ne lui y autorisent pas.
Merci.
Il existe beaucoup de solution pour cela !
Il faudrait nous préciser comment sont authentifiés vous utilisateurs...
Si vous utilisez l'authentification Windows par exemple, vous pouvez
régler ce genre d'interdiction au niveau d'IIS...
Cordialement
--
Gilles TOURREAU
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
J'utilise asp net 2 et l'authentification par forms. J'utilise les options
par défaut pour l'authentification (SqlProvidermembership)et sqlroleprovider
pour les roles.
L'application sera déployé sous un win server 2003, donc tous les acces aux
repertoires se basent sur le web.config présent de ce dernier avec des
<allow='client1' deny='?' ..... le résultat est que si un user n'ayant pas le
rôle client1 par exemple essaye d'appeller une ressource dans ce repertoire
il est immédiatement redirigé vers la page de login. Mon objectif serait de
le rediriger vers une autre page mentionnat le fait qu'il essaye d'atteuind
une ressource non autorisée.
Je pensais à ecrire un httpmodule pour utiliser une fonction qui me
permettrait de faire cela, mais je ne sais pas comment récupérer l'événement
ou la propiété qui indique que cet utilisateur avec son role n'y a pas droit.
Merci d'avance pour vos réponses.
"Gilles TOURREAU" a écrit :
Regardez l'exemple de la création d'une module :
http://msdn2.microsoft.com/fr-fr/library/xx2w5c88(VS.80).aspx
Vous pouvez dans cette exemple avoir une instance de HttpApplication
A partir de cette instance vous pouvez accéder à un objet IPrincipal via
HttpApplication.User.
Il suffit d'appeler la méthode IPrincipal.IsInRole()...
Autre solution possible (à tester) :
Utiliser HttpContext.Current.User
Cordialement
--
Gilles TOURREAU
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr