Meilleur auteur de réponses
Récupérer nom d'utilisateur windows

Question
-
Bonjour,
Alors voila mon problème, pour mon application en C# avec ASP.NET, je veux récupérer l'identifiant Windows de l'utilisateur.
J'ai essayé chacune de ces méthodes, mais aucune n'a donné le bon résultat sur le serveur IIS :string s1 = WindowsIdentity.GetCurrent().Name; //donne: "IIS APPPOOL\ASP.NET v4.0" string s2 = System.Web.HttpContext.Current.User.Identity.Name; //donne: "" string s3 = Thread.CurrentPrincipal.Identity.Name; //donne: "" string s4 = System.Security.Principal.WindowsIdentity.GetCurrent().Name; //donne: "IIS APPPOOL\ASP.NET v4.0"
Lorsque je lance en mode debug, donc sur localhost, j'obtiens ceci :
string s1 = WindowsIdentity.GetCurrent().Name; //donne: "AAFC-ACC\monnom" string s2 = System.Web.HttpContext.Current.User.Identity.Name; //donne: "AAFC-ACC\monnom" string s3 = Thread.CurrentPrincipal.Identity.Name; //donne: "AAFC-ACC\monnom" string s4 = System.Security.Principal.WindowsIdentity.GetCurrent().Name; //donne: "AAFC-ACC\monnom"
Ce qui est attendu mais pas très intéressant pour la mise en production de mon appli...
J'ai mis à jour le fichier webconfig comme suit, mais sans efficacité...<identity impersonate="false"/> <authentication mode="Windows"/>
Alors si vous avez une idée pour m'aider, ce serait avec grand plaisir..
Merci!- Modifié cover70 mardi 25 juin 2013 21:14
Réponses
-
Bonjour,
Pour récupérer l'utilisateur actuellement authentifié au niveau Windows dans votre application vous devez activer l'option "impersonate=true" au niveau de votre web.config de votre application ASP .NET.
Vous devez aussi autoriser l'emprunt d'identité dans IIS.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Marqué comme réponse Aurel Bera lundi 1 juillet 2013 07:53
Toutes les réponses
-
Bonjour,
Pour récupérer l'utilisateur actuellement authentifié au niveau Windows dans votre application vous devez activer l'option "impersonate=true" au niveau de votre web.config de votre application ASP .NET.
Vous devez aussi autoriser l'emprunt d'identité dans IIS.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Marqué comme réponse Aurel Bera lundi 1 juillet 2013 07:53
-
Bonjour,
La valeur correcte sera retournée par HttpContext.Current.User.Identity.Name qui est l'utilisateur connecté à l'application (à ne pas confondre avec le compte sous lequel s'exécute techniquement le code de la page et qui n'est pas nécessairement le même).
Que retourne HttpContext.Current.User.Identity.IsAuthenticated ?
Si false, c'est qu'un accès anonyme suffit. Avez-vous par exemple interdit l'accès de certaines pages à des utilisateurs non authentifiés ? Je pense qu'actuellement vous avez indiqué une authentification Windows mais comme les pages restent accessibles à des utlisateurs non authentifiées, aucune identication n'est réellement nécessaire et l'utilisateur reste non authentifié.
Essayez : http://msdn.microsoft.com/fr-fr/library/wce3kxhd(v=vs.100).aspx et retirez les droits voulus sur une URL donnée pour tester.
P.S. : contrairement à Gilles, je dirais que "impersonate" n'est pas nécessaire (cela va permettre d'exécuter le code de la page sous le compte de l'utilisateur connecté). Si on veut l'utilisateur connecté, toujours utiliser HttpContext.Current.User.Identity.Name qui retournera toujours la bonne valeur indépendamment du réglage de "impersonate".
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Marqué comme réponse Aurel Bera lundi 1 juillet 2013 07:53
- Non marqué comme réponse Aurel Bera lundi 1 juillet 2013 12:21
-
Bonjour,
Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.
Cordialement,
-
Bonjour,
Pouvons-nous considérer que vous avez résolu votre problème avec les scénarios proposés ? Dans l'affirmative, pourriez-vous partager avec nous la solution, afin que d'autres personnes avec le même problème puissent profiter de cette solution ?
Désormais, nous marquons les solutions proposées. N'hésitez pas à revenir et supprimer la réponse marquée si la solution n’est pas correcte. Merci !
Cordialement,
-
-
Bonjour
Merci de votre retour.
Cordialement,