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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #12150701
Le Wed, 17 Oct 2007 16:32:01 +0200, 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.



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
Julian Alvarez
Le #12150621
Bonjour et merci de votre réponse.

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 :

Le Wed, 17 Oct 2007 16:32:01 +0200, 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.

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



Gilles TOURREAU
Le #12150611
Le Sat, 20 Oct 2007 17:38:01 +0200, Julian Alvarez

Bonjour et merci de votre réponse.

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.





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
Publicité
Poster une réponse
Anonyme