Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1585 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu][ASP .NET][C#] Désactiver l'impersonation en code behind

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][ASP .NET][C#] Désactiver l'impersonation en code behind

n°1674447
MetalDestr​oyer
Posté le 21-01-2008 à 14:37:43  profilanswer
 

Hello les gens,
 
j'ai un plus ou moins un gros pépin. A l'heure actuel, j'utilise l'impersonation et notamment le changement de profil utilisateur lorsque je dois effectuer une tâche bien précise qui réclamerait des droits supplémentaires (écriture, modif, lecture).  
 
Dans ce cas, je n'ai aucun problème sauf une qui est que je dois déclarer dans les membres administrateur de la machine serveur le compte utilisateur qui aura plein pouvoir et d'utiliser son compte (login, nom de domaine et password) pour le changement de profil via l'impersonation. Le login, domaine et password sont pour l'instant définit dans le web.config.
 
Maintenant, et pour une raison de sécurité, j'aimerai cette fois désactiver programmatiquement l'impersonation au moment d'effectuer cette tâche précise sans pour autant mettre ma variable Identity impersonate="true" à false. Pour la raison simple que j'ai particulièrement besoin de connaitre les logins utilisateur pour la sécurité etc...
 
Bref, pour l'instant je n'ai trouvé aucune solution via MSDN ou autres. Dès qu'on parle d'impersonation c'est surtout pour faire exactement ce que j'ai fait plus haut.  
 
Donc si un de vous a une idée de comment désactiver cette impersonation. Si vraiment il n'est pas possible, je devrais faire avec ou de chercher une autre solution.


Message édité par MetalDestroyer le 22-01-2008 à 10:54:15
mood
Publicité
Posté le 21-01-2008 à 14:37:43  profilanswer
 

n°1674617
MetalDestr​oyer
Posté le 21-01-2008 à 17:12:55  profilanswer
 

Hoplà je reviens sur le topic pour qu'on puisse m'éclairer sur cet article fort intéressant (en anglais).
 
Et plus précisément lorsque l'auteur mentionne ceci :

Citation :


Calling the Impersonate method of the current user’s WindowsIdentity makes the program run with the permissions of the current user.


 
Que veut il dire par "the permissions of the current user" ? Est ce les permissions de l'utilisateur définit au niveau de la machine serveur ? ou bien des permissions qui sont définit sur la machine cliente de l'utilisateur ?

n°1674847
MetalDestr​oyer
Posté le 22-01-2008 à 10:39:51  profilanswer
 

Hoplà bonne nouvelle j'ai trouvé la solution à mon problème.
Donc tout d'abord me suis complètement planté dans l'utilisation des méthodes natives qui me permettent de récupérer le login utilisateur windows.
 
Au lieu d'utiliser la variable httpContext.User.Identity.Name, j'ai pris ((WindowsPrincipal)System.Security.Principal.WindowsIdentity.GetCurrent()).Ident
ity.Name
. Qui au final me retourne le login de l'utilisateur si seulement le paramètre <identity impersonate=true/> est définit dans le web.config.
 
Dans le cas contraire, j'obtiens le login utilisateur définit dans le Pool définit sur IIS qui peuvent prendre les valeurs suivantes : systeme local, service local, service réseau ou encore un compte utilisateur.
 
Donc pour résoudre mon problème j'ai besoin de  
- désactiver l'impersonation au niveau de mon web.config.  
- paramétrer la sécurité du Pool IIS en systeme local (il a donc tous les droits).
- utiliser la variable HttpContext.User.Identity.Name au lieu du WindowsIdentity.GetCurrent() + cast (pour l'usage standard de l'appli)
- utiliser la variable ((WindowsPrincipal)System.Security.Principal.WindowsIdentity.GetCurrent()).Ident
ity.Name au moment d'effectuer l'impersonation
- utiliser le code qui permet d'effectuer l'impersonate au moment voulu (afin d'utiliser le profil systeme local) puis de revenir au profil initial.


Message édité par MetalDestroyer le 22-01-2008 à 10:53:37

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu][ASP .NET][C#] Désactiver l'impersonation en code behind

 

Sujets relatifs
[resolu]Ouverture image à l'aide de javascript[RESOLU] Problème de lecture MP3 sur page html
code source masterminregex et nettoyage de code html
Exécution d'un script ant avec un code JAVAProbleme pour recuprer une variable dans un code embed vers un swf
Où stocker une variable transitoire ? [Résolu][Résolu] Problème de character set XML et PHP (SimpleXML)
[Résolu] Parsage d'un flux XML, les accents = découpe du texte[C# .NET] Compilation conditionnelle de dll
Plus de sujets relatifs à : [Résolu][ASP .NET][C#] Désactiver l'impersonation en code behind


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR