2012-04-11 21 views

Antwort

33

Sie könnten System.Security.Principal.WindowsIdentity.GetCurrent().Name verwenden, um die Identität zu identifizieren, in der die aktuelle Anwendung ausgeführt wird. This link bietet ein nettes Dienstprogramm, das die Identität anzeigt, unter der das aspx ausgeführt wird.

+0

Wenn ich die AppPool Identität im IIS-Manager ändern sollte nicht System.Security.Principal.WindowsIdentity.GetCurrent(). Name, um den geänderten Wert erhalten? – p0enkie

+6

Ok für jemanden da draußen, der Probleme haben könnte. Dies ist der Code, den ich benutzt habe, um den Benutzernamen zu erhalten, der den AppPool (seine Identität) gestartet hat: ApplicationPool pool = serverManager.ApplicationPools ["YoutAppPoolName"]; pool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser; Zeichenfolge user = pool.ProcessModel.UserName; – p0enkie

+1

@ p0enkie Was ist 'serverManager'? – Kiquenet

2

Sie müssen einen Verweis auf Microsoft.Web.Administration (in Microsoft.Web.Administration.dll) vornehmen. Microsoft.Web.Administration.dll befindet sich in 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;    
} 
Verwandte Themen