2011-06-13 46 views
0

我正在研究一个应用程序,在这个应用程序中我根据它们的RID来识别用户nd组。因此,如果域中存在重复的RID,则会出现问题。以下链接http://support.microsoft.com/kb/315062指出,如果管理员占用RID管理器的角色并且两个或多个用户同时请求RID,则可能会发生这种情况。我想知道可能导致重复RID的其他可能性。RID可以被复制的可能性有哪些

在此先感谢。

回答

1

我不明白你的问题的原因是你为什么使用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 FunctionspeUse检索如果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用法。

+0

道歉的歧义,编辑的问题。我实际上想要识别使用RID的用户,如果域上有重复的RID,则可能无法正常工作。因此,我想知道,可能出现这种情况的可能方式是什么。 – 2011-06-13 08:48:10

+0

非常感谢。我会小心他们。 – 2011-06-14 11:58:47

相关问题