繁体   English   中英

是否有一个C#库,其行为类似于Active Directory的权限和组?

[英]Is there a C# library that behaves like Active Directory's Permissions and Groups?

我喜欢权限和组在Active Directory中的工作方式,但我不想将我的应用程序与AD绑定。

是否存在包含与AD相同功能的现有库? 特别是,能够创建组,将用户分配到组,添加组的权限,以及查看用户或组的应用权限?

ActiveDirectoryMembershipProvider类继承MembershipProvider。

这意味着您不必将应用程序绑定到AD本身,而是绑定到MembershipProvider模型。 此模型在整个.net中使用,适用于内置控件和类。

这是一个例子

//Any of these will work
ActiveDirectoryMembershipProvider provider = new ActiveDirectoryMembershipProvider();
//SqlMembershipProvider provider = new SqlMembershipProvider();
//MyCustomMemebershipProvider provider = new MyCustomMemebershipProvider();

MembershipProvider membershipProvider = provider;

if (membershipProvider.ValidateUser("username", "password"))
{
    MembershipUser user = membershipProvider.GetUser("username", true);
}
else
{
    //Do something
}

我不是这个模型的专家,但是已经有了一些经验,可以对MembershipProvider进行子类化,并实现IPrincipal,IIdentity等。这样做非常灵活,可以保持一致的架构

您可以使用授权管理器(AzMan),它是Windows Server的一部分。 要从.NET集成它,Enterprize Library 5具有您可以使用的类库类型。

您可以设置一个免费的LDAP服务器,例如OpenLDAP ,并使用DirectoryServices来访问它,以及管理LDAP目录的任意数量的工具 需要一些配置!

使用标准目录服务的好处在于过多的管理工具和支持任意数量的应用程序的能力。 缺点是学习管理和查询目录。 您是否有任何特殊原因不想使用AD? 如果您正在使用Windows,我强烈建议您使用大多数异议。

如果AD对您来说太重,您可以使用ADAM,它是一个轻型AD,您可以使用后者提供的ADSI Edit进行配置。 这是一个很好的文档提供,以及关于SO的配置问题

此外,您可以使用相同类型的.NET API(例如System.DirectoryServices.AccountManagement )浏览ADAM。

可能是您可以使用Microsoft的AzMan-Authorization Manager作为Active Directory的包装器。

它包含一个API来编程以请求权限

和gui(azman.msc),您可以在其中定义角色和映射权限并将它们存储在xml文件中。

它可以针对Active Directory进行配置。

两件事情。

第一:

如果要与目录进行交互,则必须在LDAP API之上进行编程。 据我所知,ADSI正在开发顶级LDAP,但它似乎与Active Directory无关。 我知道启动mono项目的 Novell 在LDAP之上编辑了一个更独立的C#库

第二:

权限,我的意思是访问控制列表(ACL)是一个非标准功能。 在Active Directory中实现权限的方式与在Sun e-Directory中实现权限的方式(特殊属性)不同。 例如,在OpenLDAP中,权限是在一种访问过滤器中实现的。

我可能(希望)是错的,但我从来没有听说过一个联合目录许可的图书馆。

我读过的一个图书馆是Rhino Security 它似乎处理身份验证以及业务操作的授权,可能值得一看。 我实际上并没有实现它,所以我不知道它有多好用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM