是否可以在Active Directory用户中保存自定义字符串?例如,一个字符串,其中包含用分号分隔的user-roles
列表?例如,DirectoryEntry
包含userRoles
之类的值为read;write;
或类似内容的内容?
我尝试使用c#设置和访问这些信息。
非常感谢!
答案 0 :(得分:1)
你基本上有三种选择。
在所有情况下,您都可以查询这些字段(例如,使用System.DirectoryServices.AccountManagement)与数据进行交互。但是,Active Directory并不是一个事务性数据库。如果您需要存储可由应用程序访问的用户的自定义数据,那么最好看看ASP.NET成员资格和角色(较旧但经过验证的技术)或ASP.NET身份等内容。由于我更熟悉会员资格和角色,我将以此为例。身份验证(成员身份)和授权(角色)方面是分开的,这意味着可以使用内置提供程序使用AD对您的用户进行身份验证,然后使用自定义角色提供程序实现(例如)根据SQL检查其角色成员身份数据库,Web服务,XML文件或其他您可以想到的其他内容。您甚至可以检查多个源(例如AD组和SQL数据库),如果性能有问题则实现缓存,等等。
Active Directory有一些缺点,例如:
因此,尽管可以在AD中存储自定义数据,但这通常是不受欢迎的,劳动密集型的,并且不安全。