9
votes

Comment obtenir l'utilisateur du pool d'applications actuel dans IIS lors de l'utilisation de IMPERSONATE = TRUE?

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"/>


1 commentaires

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.


4 Réponses :


0
votes

Si vous avez purement besoin de voir l'utilisateur, alors que vous ne pourriez pas simplement utiliser Environment.Username?

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.


1 commentaires

En fait, je veux que le vitridentité n'est pas le nom d'utilisateur



2
votes

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.

Certains doco

http://www.pinvoke.net/default.aspx/advapi32.reverttoself

http://msdn.microsoft.com/en-us/library/aa379317%28vs.85%29.aspx

et le code xxx


1 commentaires

Peut-être utiliser ceci.Request.LogonUserIdentity.name




0
votes

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


0 commentaires