Jak programowo uzyskać tożsamość appPool w C#? Chcę użytkownika puli aplikacji, a NIE użytkownika, który jest aktualnie zalogowany.Uzyskaj programowo tożsamość puli aplikacji
24
A
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.
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;
}
Jeśli zmienić tożsamość appPool w Menedżerze IIS nie powinno System.Security.Principal.WindowsIdentity.GetCurrent(). Nazwa uzyskać wartość zmieniło? – p0enkie
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
@ p0enkie czym jest 'serverManager'? – Kiquenet