【发布时间】:2011-02-03 11:05:06
【问题描述】:
如何提取 Active Directory 信息(用户名、名字、姓氏)并使用结果填充 SQL 表?
非常感谢
斯科特
【问题讨论】:
-
您正在使用/准备使用哪种(编程)语言??
标签: sql active-directory
如何提取 Active Directory 信息(用户名、名字、姓氏)并使用结果填充 SQL 表?
非常感谢
斯科特
【问题讨论】:
标签: sql active-directory
如果你只是在 SQL 中需要它,我使用下面的代码
INSERT...
SELECT A.SAMAccountName, A.Mail, A.displayName FROM
(SELECT * FROM OpenQuery(ADSI, 'SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn, userAccountControl,mail
FROM ''LDAP://domain.ro/DC=domain,DC=ro'' where objectClass = ''User''')
WHERE (sn is not null) and (givenName is not null) and (mail is not null) )A
其中 ADSI 是基于此创建的链接服务器: http://msdn2.microsoft.com/en-us/library/aa772380(VS.85).aspx
【讨论】:
如果您使用的是 .NET 3.5,我会为此使用新的 System.DirectoryServices.AccountManagement 命名空间。
在这里了解它:
Managing Directory Security Principals in the .NET Framework 3.5
基本上,您需要设置一个容器(PrincipalContext),然后枚举您要处理的用户。遍历这些并提取您需要的信息,并将其提供给 SQL Server。
【讨论】:
有不同的方法可以做到这一点。我使用 PHP 从我们的 Active Directory 中获取数据。请查看 PHP 文档中的“Lightweight Directory Access Protocol”一章。使用 PHP 填充数据库也很容易,例如MySQL 或 Microsoft SQL Server。
【讨论】: