我正在研究一个应用程序,在这个应用程序中我根据它们的RID来识别用户nd组。因此,如果域中存在重复的RID,则会出现问题。以下链接http://support.microsoft.com/kb/315062指出,如果管理员占用RID管理器的角色并且两个或多个用户同时请求RID,则可能会发生这种情况。我想知道可能导致重复RID的其他可能性。RID可以被复制的可能性有哪些
在此先感谢。
我正在研究一个应用程序,在这个应用程序中我根据它们的RID来识别用户nd组。因此,如果域中存在重复的RID,则会出现问题。以下链接http://support.microsoft.com/kb/315062指出,如果管理员占用RID管理器的角色并且两个或多个用户同时请求RID,则可能会发生这种情况。我想知道可能导致重复RID的其他可能性。RID可以被复制的可能性有哪些
在此先感谢。
我不明白你的问题的原因是你为什么使用RID来区分用户和组。对象来自不同的类别,所以它们自然而然地被区分开来。
在Win32编程,你可以只使用:
BOOL WINAPI LookupAccountSid(
__in_opt LPCTSTR lpSystemName,
__in PSID lpSid,
__out_opt LPTSTR lpName,
__inout LPDWORD cchName,
__out_opt LPTSTR lpReferencedDomainName,
__inout LPDWORD cchReferencedDomainName,
__out PSID_NAME_USE peUse
);
这个API来自Authorization Functions在peUse
检索如果SID是一个用户或组。
使用.NET Framework(C#),SecurityIdentifier
可用于确定SID是否代表有效的域帐户。
最后一件事:通常用于区分目录中的对象的方式是objectGUID
属性。该属性存在于每个对象中。所以,你可以从Active Directory服务接口(ADSI)使用的SID或GUID
"LDAP:///<GUID={28c67c50-9778-47a4-a77a-bf56f238a0c4}>"
或
"LDAP:///<SID=S-1-5-21-500000003-1000000000-1000000003-1001>"
retreive对象(您的评论后编辑) 据我所知,重复的RID在一个域内被认为是一个例外,这个例外是由一个服务于相对ID(RID)主控角色的域控制器的丢失所解释的。也许它存在的黑客工具能够修补AD数据库来更改SID,但我不知道它们。
小心,RIDs可能在其他域中复制。如果你有森林中的子域或其他树木,你可以再次找到具有不同子权限的相同RID(潜在性在同一个ACL中)
我发现在计算机SID中也是重复的,但是它是由于坏的Ghost用法。
道歉的歧义,编辑的问题。我实际上想要识别使用RID的用户,如果域上有重复的RID,则可能无法正常工作。因此,我想知道,可能出现这种情况的可能方式是什么。 – 2011-06-13 08:48:10
非常感谢。我会小心他们。 – 2011-06-14 11:58:47