是否有一个 C# 库的行为类似于活动目录的权限和组

本文关键字:权限 活动 有一个 是否 类似于 | 更新日期: 2023-09-27 17:56:39

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

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

是否有一个 C# 库的行为类似于活动目录的权限和组

也许您可以使用Microsoft-s AzMan-Authorization Manager作为Active directory的包装器。

它包含一个用于编程以请求权限的 API

以及一个 GUI (azman.msc),您可以在其中定义角色和映射权限并将其存储在 XML 文件中。

它可以针对活动目录进行配置。

ActiveDirectoryMembershipProvider 类继承 MemberProvider。

这意味着您不必将应用程序绑定到 AD 本身,而是绑定到成员资格提供程序模型。此模型在整个 .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
}

我不是这个模型的专家,但有一些子类化成员提供程序和实现IPrincipal,IIdentity等的经验。 这样做非常灵活,并且保持一致的体系结构

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

使用标准目录服务的优势在于过多的管理工具和支持任意数量的应用程序的能力。缺点是学习管理和查询目录。您不想使用 AD 有什么特别的原因吗?如果你正在Windows上工作,我强烈建议你不要反对它。

如果 AD

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

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

两件事。

第一:

如果要与目录进行交互,则必须在LDAP API之上进行编程。据我所知,ADSI是在LDAP的顶部工作,但它似乎并不那么独立于Active Directory。我知道发起单声道项目的Novell在LDAP之上编辑了一个更独立的C#库。

第二:

权限,我的意思是访问控制列表(ACL)是一项非标准功能。在活动目录中实现权限的方式与它们在 Sun 电子目录(特殊属性)中实现。例如,在OpenLDAP中,权限包含在一种访问过滤器中。

我可能(希望)错了,但我从未听说过在目录中联合权限的库。

我读过的一个库是Rhino Security。 它似乎处理身份验证以及业务运营的授权,可能值得一看。 不过我还没有真正实现它,所以我不知道它的效果如何。

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