Active directory LDAP和Active Directory学习曲线
我们正在考虑将LDAP与Active Directory一起用于许多web应用程序的用户管理,而不是自定义关系数据库解决方案。做这件事时是否有很高的学习曲线,还是像1,2,3那样简单?LDAP与传统数据存储相比有点滑稽,也有点“不同”——因此肯定有学习曲线 最具挑战性的部分是“掌握”LDAP路径,以及如何构建和使用这些路径。另外:连接到LDAP的权限总是有点问题。如果您想开始搜索LDAP存储中的对象,那么LDAP筛选器相当复杂的语法也可能是一个挑战,让您绞尽脑汁:-) 如果您打算在Windows上与Active Directory对话并使用Active Directory,那么您肯定应该查看该网站,了解大量有用的信息 您没有提到您打算使用哪种语言/编程环境-如果您使用的是.NET 3.5或更高版本(C#,VB.NET),您应该查看Active directory LDAP和Active Directory学习曲线,active-directory,ldap,Active Directory,Ldap,我们正在考虑将LDAP与Active Directory一起用于许多web应用程序的用户管理,而不是自定义关系数据库解决方案。做这件事时是否有很高的学习曲线,还是像1,2,3那样简单?LDAP与传统数据存储相比有点滑稽,也有点“不同”——因此肯定有学习曲线 最具挑战性的部分是“掌握”LDAP路径,以及如何构建和使用这些路径。另外:连接到LDAP的权限总是有点问题。如果您想开始搜索LDAP存储中的对象,那么LDAP筛选器相当复杂的语法也可能是一个挑战,让您绞尽脑汁:-) 如果您打算在Windows
System.DirectoryServices.AccountManagement
(S.DS.AM)命名空间。请在此处阅读所有相关内容:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
}
// find the group in question
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");
// if found....
if (group != null)
{
// iterate over members
foreach (Principal p in group.GetMembers())
{
Console.WriteLine("{0}: {1}", p.StructuralObjectClass, p.DisplayName);
// do whatever you need to do to those members
}
}
新的
S.DS.AM
名称空间使得在C#/VB.NET中与广告中的用户和组玩起来非常容易 LDAP与传统的数据存储相比有点滑稽,也有点“不同”——因此肯定会涉及到学习曲线
最具挑战性的部分是“掌握”LDAP路径,以及如何构建和使用这些路径。另外:连接到LDAP的权限总是有点问题。如果您想开始搜索LDAP存储中的对象,那么LDAP筛选器相当复杂的语法也可能是一个挑战,让您绞尽脑汁:-)
如果您打算在Windows上与Active Directory对话并使用Active Directory,那么您肯定应该查看该网站,了解大量有用的信息
您没有提到您打算使用哪种语言/编程环境-如果您使用的是.NET 3.5或更高版本(C#,VB.NET),您应该查看System.DirectoryServices.AccountManagement
(S.DS.AM)命名空间。请在此处阅读所有相关内容:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
}
// find the group in question
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");
// if found....
if (group != null)
{
// iterate over members
foreach (Principal p in group.GetMembers())
{
Console.WriteLine("{0}: {1}", p.StructuralObjectClass, p.DisplayName);
// do whatever you need to do to those members
}
}
新的S.DS.AM
名称空间使得在C#/VB.NET中与广告中的用户和组玩起来非常容易 另请参见:有关为LDAP服务器交互编写代码的信息,该交互将是健壮的,与任何供应商特定的LDAP知识隔离且不敏感的。编写具有特定实现知识的代码将导致脆弱、难以维护的代码,当服务器实现的某个方面发生更改(例如服务器本身、服务器配置、负载平衡器或与基础架构相关的任何内容)时,这些代码可能会遇到意外的结果
尽可能避免编写特定于Microsoft的代码或创建特定于Microsoft的配置。严格遵守LDAP标准文档 另请参见:有关为LDAP服务器交互编写代码的信息,该交互将是健壮的,与任何供应商特定的LDAP知识隔离且不敏感的。编写具有特定实现知识的代码将导致脆弱、难以维护的代码,当服务器实现的某个方面发生更改(例如服务器本身、服务器配置、负载平衡器或与基础架构相关的任何内容)时,这些代码可能会遇到意外的结果
尽可能避免编写特定于Microsoft的代码或创建特定于Microsoft的配置。严格遵守LDAP标准文档 谢谢你的链接。使用LDAP不符合下划线数据源为Active Directory的跨平台解决方案吗?谢谢链接。使用LDAP不符合下划线数据源为Active Directory的跨平台解决方案吗?