2012-04-11 11 views

Odpowiedz

33

Można użyć System.Security.Principal.WindowsIdentity.GetCurrent().Name, aby zidentyfikować tożsamość, w której działa bieżąca aplikacja. This link zapewnia ładne narzędzie wyświetlające tożsamość, pod którą uruchamiany jest aspx.

+0

Jeśli zmienić tożsamość appPool w Menedżerze IIS nie powinno System.Security.Principal.WindowsIdentity.GetCurrent(). Nazwa uzyskać wartość zmieniło? – p0enkie

+6

OK dla kogoś, kto może się borykać, jest to kod, którego użyłem, aby uzyskać nazwę użytkownika, która uruchomiła AppPool (jest to tożsamość): Pula Pula aplikacji = serverManager.ApplicationPools ["YoutAppPoolName"]; pool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser; string user = pool.ProcessModel.UserName; – p0enkie

+1

@ p0enkie czym jest 'serverManager'? – Kiquenet

2

Należy odwołać się do Microsoft.Web.Administration (w Microsoft.Web.Administration.dll). Microsoft.Web.Administration.dll znajduje się w C: \ Windows \ System32 \ inetsrv.

//Add this to your using statements: 
using Microsoft.Web.Administration; 

//You can get the App Pool identity like this:  
public string GetAppPoolIdentity(string appPoolName) 
{ 
    var serverManager = new ServerManager(); 

    ApplicationPool appPool = serverManager.ApplicationPools[appPoolName]; 
    appPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser; 
    return appPool.ProcessModel.UserName;    
} 
Powiązane problemy