2010-03-17 53 views
0

我使用System.DirectoryServices.AccountManagement來查找登錄用戶的AD條目。它在開發人員機器上的VS2008 WebDev服務器上運行良好。System.DirectoryServices.AccountManagement未在服務器上工作

但是,當我們在開發服務器(Windows Server 2008)上安裝代碼時,我們得到一個訪問錯誤。

開發人員的機器和開發服務器都是同一個域的成員。

我們啓用了模擬,所以我們使用相同的用戶憑證連接到AD。

我們在這裏失蹤了什麼?爲什麼它在開發人員的機器上工作,而不是在開發服務器上工作?

我們收到的實際例外是「發生操作錯誤」。

回答

2

經過一番研究,我發現下面的鏈接:http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/c314650a-ff5e-49e6-8f53-9a7cca17e806

在這一個用戶描述瞭解決問題的辦法:

我已經看到了這個錯誤,它關係到一個事實,即當在web.config中將NTLM身份驗證和模擬設置爲true,IIS無法將身份驗證令牌用於其他服務器,因爲它是「輔助令牌」。

解決我的問題是,換我的Active Directory代碼:

using(HostingEnvironment.Impersonate()) 
{ 
    //Active Directory search goes here. 
} 

這使得與應用程序池的標識調用AD,它在我的情況做的伎倆。

0

我只是隨便看看使用UserPrincipal.FindByIdentity

,並從mlsteeves答案是我需要的,冒充的生產服務器上的hostenvironnement後修正錯誤System.DirectoryServices.DirectoryServicesCOMException

這麼好的電話是關於在服務器上的委託,你的解決方案非常完美,非常感謝!

相關問題