2012-05-20 37 views
3

我正在使用LDAP連接類,從this page on MSDN工作。Visual Studio報告說屬性沒有getter,儘管intellisense說它確實是

我一直在使用字符串構造像這樣實例化的類:

LdapConnection ld = new LdapConnection("LDAP://8.8.8.8:8888"); 

我現在想設置我的憑據,所以我努力做到以下幾點:

ld.Credential.UserName = "Foo"; 

但我得到的以下錯誤:

The property or indexer 'System.DirectoryServices.Protocols.DirectoryConnection.Credential' cannot be used in this context because it lacks the get accessor.

但是,當鍵入此值時,智能感知顯示以下內容:

enter image description here

這說明表明,用戶名確實應該有一個get訪問,我缺少什麼?

感謝

回答

6

LdapConnection.Credential Property沒有一個get訪問,所以你不能檢索其當前值,並設置對返回的NetworkCredential實例UserName屬性。您只能分配給LdapConnection.Credential物業:

ld.Credential = new NetworkCredential(userName, password); 

var credential = new NetworkCredential(); 
credential.UserName = userName; 
credential.Password = password; 
ld.Credential = credential; 

ld.Credential = new NetworkCredential 
{ 
    UserName = userName, 
    Password = password, 
}; 
+0

我認爲這個問題的目的還在於,爲什麼智能感知認爲有一個getter。你能解釋一下嗎? –

+2

該屏幕截圖顯示了NetworkCredential.UserName屬性的文檔,而不是LdapConnection.Credential屬性。 NetworkCredential.UserName屬性確實具有'get'和'set'訪問器。 – dtb

+0

@AshBurlaczenko:即使描述不正確,它也不是IntelliSense的錯,而是.NET庫的文檔。智能感知僅顯示與成員關聯的摘要。 – Douglas

相關問題