in .NET Lorsqu'un site Web hébergé dans IIS Comment obtenez-vous l'utilisateur actuel que le site Web est exécuté. C'est-à-dire que l'utilisateur du pool d'applications n'est pas l'utilisateur actuel accédant au site.
Utilisation de Windows intégré et impersonnat. P>
<authentication mode="Windows"/> <identity impersonate="true"/>
4 Réponses :
Si vous avez purement besoin de voir l'utilisateur, alors que vous ne pourriez pas simplement utiliser Environment.Username? P>
Je viens de reconfiguré mon environnement pour courir avec un pool d'applications classique (avec une impersonnation sur) et l'utilisateur sort comme IUSR avec l'impersonate. p>
En fait, je veux que le vitridentité n'est pas le nom d'utilisateur
a trouvé une solution.
Utilisation de Revertoself Vous pouvez dépouiller l'impersonnation d'un fil. Dans IIS, cela équivaut à l'utilisateur de la piscine d'app. P>
Certains doco p>
http://www.pinvoke.net/default.aspx/advapi32.reverttoself p>
http://msdn.microsoft.com/en-us/library/aa379317%28vs.85%29.aspx A > p> et le code p>
Peut-être utiliser ceci.Request.LogonUserIdentity.name code> b>
Pour revenir à l'utilisateur de la piscine d'app dans le code géré, vous pouvez procéder comme suit:
using (WindowsIdentity.Impersonate(IntPtr.Zero)) { //This code executes under app pool user }
Lien rapide à la documentation pertinente .
John Simons: Exactement ce que je voulais, merci. Pour VB.net Version:
With System.Security.Principal.WindowsIdentity.Impersonate(IntPtr.Zero) Dim sCurrentUserName As String = System.Security.Principal.WindowsIdentity.GetCurrent.Name End With
pourquoi? Peut-être que votre schéma d'impersonnation n'est peut-être pas le bon si vous devez obtenir l'utilisateur de la piscine d'app pour certaines actions.