Attention !

Ce site n'est plus maintenu. Retrouvez l'article sur Colorseeds.net

Vous allez être redirigé dans 5 secondes...

Vous êtes ici : Accueil > Blog technique > ASP.NET : L'impe

ASP.NET : L'impersonation
17/02/2011

L'impersonation signifie le fait de choisir sous quel compte seront exécutées les requêtes ASP.

Dans le web.config, la ligne suivante :

<identity impersonate="true" />

Signifie que le compte qui s'est connecté à IIS sera utilisé pour exécuter la logique côté serveur.

ATTENTION : Si le site est en accès anonyme, alors c'est le compte du pool d'application qui est utilisé (il en faut bien 1 !).

On peut forcer le compte utilisé pour l'impersonation :

<identity impersonate="true" userName="DOMAIN\username" password="aaa"/>

Ceci n'empêche pas le compte Windows de se connecter au site, mais ce sera DOMAIN\username qui exécutera la logique.

Du côté des sources :

HttpContext.Current.User : Renvoie le compte connecté à IIS (Windows intégré, anonyme, etc.) Quelque soit l'impersonation choisie.

WindowsIdentity.GetCurrent() : Renvoie le compte qui exécute la logique. Donc si l'impersonation est à "true" dans le web.config, on aura le même compte que Current.User...

Enfin, en cours d'excution, on peut décider que le compte connecté sera celui qui sert à l'impersonation :

WindowsIdentity ident = (WindowsIdentity)HttpContext.Current.User.Identity; // On caste avant...

ident.Impersonate();

Si jamais le Current.User était un accès anonyme, une exception surgit : "Une identité anonyme ne peut pas exécuter un emprunt d'identité."

CQFD.

Ajouter un commentaire

Auteur


Email


Message *