2012-05-11 42 views
0

我使用的目錄服務,.NET中的第一再寄一次淨目錄服務要在一個asp.net網站應用程序使用它來對本地用戶進行身份驗證我的機器上 的代碼如下本地認證

DirectoryEntry entry = new DirectoryEntry("WinNT://"+Environment.MachineName+"/administrator", txtBoxUserName.Text, txtBoxPWD.Text); 

出於某種原因,我得到了一個「System.Runtime.InteropServices.COMException」異常,雖然我爲管理員用戶使用了正確的用戶名和密碼。

任何幫助,將不勝感激

回答

0

試試這個:


public bool IsAuthenticationValid(string userName, string password) 
{ 
    using (var context = new PrincipalContext(ContextType.Machine)) 
    { 
     return context.ValidateCredentials(userName, password); 
    } 
} 

編輯:忘了提,你需要的System.DirectoryServices和System.DirectoryServices.AccountManagement引用。

如果您遇到同樣的錯誤,請描述您正在運行此代碼的環境。通過我的意思是命令行,Web應用程序等。只是更多的背景知道我是否可以進一步幫助您。

+0

它始終返回true –

+0

謝謝..如果用戶不存在,則返回true。如果用戶存在並且密碼錯誤,則返回false.So必須使用UserPrincipal.findbyIndentity()來檢查用戶是否實際存在 –

+0

@ Krishnanunni Jeevan它不會那樣對我。如果用戶不存在或密碼不正確,我收到一個錯誤的答覆,否則爲真。有趣:) – Mirko