我正在使用ColdFusion 9.1.2。
我有大约十分钟使用LDAP的经验。
我正在为网站创建登录页面。每个用户都通过Active Directory登录网络。当他们登录到他们的工作站并访问我的登录页面时,应运行查询以查看用户是否属于特定组。如果他们属于该组,则会自动登录。如果不属于,则会显示“权限被拒绝”。
假设我的用户名是BobJones,而该组是NicePeople。
如何确定当前登录的用户并查看他们是否属于特定群组?
答案 0 :(得分:1)
要检查用户是否是AD中特定群组的成员,您首先需要知道该群组的DN。您应该将您拥有的组名与该组的DN相匹配。由于您没有指定,我假设NicePeople实际上是该组的CN属性。要获取该组的DN,请使用类似此(&(objectClass=group)(cn=NicePeople))
的LDAP过滤器并请求distinguishedName
属性(如果您的库允许,则只使用检索到的对象的DN)。
拥有群组的DN,您需要检查用户的memberOf
属性。您将需要用户的DN(进行查询),遗憾的是我不知道如何获取当前登录的用户。
memberOf
属性包含此用户所属的组的DN列表。但是,用户是另一个组的成员,该组不在此列表中。这些组称为“主要组”。主要组在用户的primaryGroupId
属性中存储为整数id。该值与组的primaryGroupToken
属性匹配。