2013-04-25 87 views
0

我想在我的asp.net c#網站上模擬一個遠程活動目錄帳戶,該網站託管在無域計算機(或其他域)上。我已經得到這個工作:獲取當前模擬用戶的用戶名

IntPtr token = IntPtr.Zero; 
LogonUser("username", "ad.some.other.domain.com", "password", LOGON_TYPE_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, ref token)) 
{ 
    WindowsImpersonationContext wic; 
    wic = WindowsIdentity.Impersonate(token); 
    //run code under the impersonated user. 

    //System.Environment.UserName returns windows user (not impersonated one) 
    //WindowsIdentity.GetCurrent() returns windows user (not impersonated one) 
} 

我的代碼運行,但我無法獲得模擬用戶的'用戶名'。我知道這是因爲我使用LOGON_TYPE_NEW_CREDENTIALS作爲我的登錄類型,它在技術上不模仿,但使用令牌在模擬帳戶下運行網絡連接。這工作正常,但理想情況下,我的網站將在模擬用戶下運行,所以我可以獲取用戶名和其他可能的功能。基本上我想作爲模擬用戶與網站進行交互,而不僅僅是作爲模擬用戶運行網絡連接。我試過LOGON32_LOGON_INTERACTIVE作爲登錄類型,但這不允許我在我的網站上運行的域計算機上驗證域帳戶。

有什麼我可以做的,以便我可以充分模仿(獲取用戶名等)並使用來自無域計算機的活動目錄進行身份驗證?

回答