我想知道這是可能的還是可能的解決方法。我想讓我的網站在IIS中運行 - 運行該網站的應用程序池將成爲可查詢AD的服務帳戶。使用應用程序池標識和運行進程的用戶
爲了得到當前的應用程序池帳戶,併成立了校長方面,我有以下:
string appPoolAccount = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
// Define Context
PrincipalContext context = new PrincipalContext(ContextType.Domain);
用戶現在可以從那裏自己的機器上運行的網站 - 當他們推出有瀏覽器的用戶名是啓動該過程將以'test123'爲例 - 因爲這將在那裏登錄用戶。
我需要明白的是,他們正在運行的瀏覽器,所以我可以做一些象下面這樣的用戶ID(分別爲第二個參數將是用戶的串運行,我已經找到了處理):
UserPrincipal user = UserPrincipal.FindByIdentity(context , 'test123');
到目前爲止,我已經試圖從獲得該用戶的字符串:
string test = Environment.UserName; //Took the App Pool Account
WindowsIdentity wi = WindowsIdentity.GetCurrent(); // Took App Pool account
string test = HttpContext.Current.User.Identity.Name; //bombed out as null
它是什麼樣的應用程序? ASP.NET? WCF或其他?如果你在非請求處理線程上調用HttpContext.Current.User,它就會變成null,這很正常。 –