我想在任何目錄服務的Windows操作系統上驗證我的應用程序的用戶名和密碼。例如,它可能是Microsoft Active Directory,Novell eDirecotry或SunOne。我已經知道如何使用c#爲Microsoft Active Direcotry本地執行此代碼。 (我完全放棄使用ADSI並創建一個低級com組件)如何在.NET中驗證LDAP
我試圖用Novel eDirecotory進行身份驗證的方式是我安裝了Mono項目。在他們爲您提供Novell.Directory.ldap.dll的單聲道項目中,代碼看起來與Microsoft Active Directory相同(http://www.novell.com/coolsolutions/feature/11204.html)
對於SunOne,我被告知使用與活動目錄相同的代碼, 。但LDAP connecton字符串是有點不同(http://forums.asp.net/t/354314.aspx) (http://technet.microsoft.com/en-us/library/cc720649.aspx)
到我的項目複雜的是,大多數客戶使用「服務帳戶:」這意味着我需要之前,我可以使用管理用戶名和密碼綁定驗證常規用戶名和密碼。我的問題分爲兩部分。
1)從上面我已經解釋過的,這是我應該對每個單獨的定向服務進行認證的正確方向嗎?
2)我覺得我根本不需要做任何這些代碼。我也覺得使用服務帳戶的規定並不重要。如果我所關心的是在Windows機器上驗證用戶名和密碼,爲什麼我甚至需要使用ldap?我想說的是,考慮一下。當您早晨登錄到您的計算機時,您不必提供僅用於登錄的服務帳戶。我可以通過使用runas功能輕鬆地在DOS提示符下驗證用戶名和密碼,並且我將被拒絕或不能解析文本文件。我確定還有其他方法可以將用戶名和密碼傳遞給我所在的Windows操作系統,並告訴我用戶名和密碼是否對它所在的域有效。我對嗎?如果是的話,你們有什麼建議的方式?
邁克爾Evanchik www.MikeEvanchik.com
我假設上面只是微軟的AD,而且正在使用LDAP。感謝代碼。我的問題更多的是普遍的方式,可能不使用LDAP,因爲一些LDAP服務器需要一個服務帳戶用戶名和密碼,只是爲了綁定,所以你甚至可以嘗試認證一個普通用戶。 – 2009-04-21 14:47:45
這就是我的建議 - 使用登錄用戶的憑據(假設你要求他們的用戶名和密碼)作爲服務帳戶。應該至少能夠查詢並查看他們自己的帳戶。如果那有效,那麼你知道驗證工作。這似乎是一個相當普遍的方式來檢查密碼是否正確。 – Hugoware 2009-04-21 16:07:59