我想在具有任何目录服务的 Windows 操作系统上验证我的应用程序的用户名和密码。例如,它可以是 microsoft Active Directory、Novell eDirecotry 或 SunOne。我已经知道如何使用 c# 为 Microsoft Active Direcotry 本地执行此代码。(我完全放弃了使用 ADSI 并创建了一个低级 com 组件)
我尝试使用 Novel eDirecotory 进行身份验证的方式是我安装了 Mono 项目。在 mono 项目中,他们为您提供 Novell.Directory.ldap.dll 代码看起来与 Microsoft Active Directory 的代码有些相同。( http://www.novell.com/coolsolutions/feature/11204.html )
对于 SunOne,我被告知使用与活动目录相同的代码,但 ldap 连接字符串有点不同。(http://forums.asp.net/t/354314.aspx)(http://technet. microsoft.com/en-us/library/cc720649.aspx)
为了使我的项目复杂化,大多数客户使用“服务帐户:”,这意味着我需要绑定管理用户名和密码,然后才能验证常规用户名和密码。我的问题分为两部分。
1)根据我上面的解释,这是我应该针对每个单独的目录服务进行身份验证的正确方向吗?
2)我觉得我根本不需要做任何这段代码。我也觉得使用服务帐户的规定根本不重要。如果我关心的只是在 Windows 机器上验证用户名和密码,为什么我什至需要使用 ldap?我想说的是,考虑一下。当您早上登录机器时,您无需提供服务帐户即可登录。我可以使用 runas 功能在 DOS 提示符下轻松验证用户名和密码,我将被拒绝或不被拒绝,并且可以解析文本文件。我确定还有其他方法可以将用户名和密码传递给我所在的 Windows 操作系统,并会告诉我用户名和密码是否对它所在的域有效。我对吗?如果是这样,你们有什么建议的方法?
Michael Evanchik www.MikeEvanchik.com