如何将另一个域的用户添加到本地域组?
How to add a user from another domain to a local domain group?
我想使用 C# 将用户从一个域添加到本地域。这些域具有双向信任。目前我收到错误
'No principal matching the specified parameters was found.' on the .Save() line.
我有用户的 DN(例如 'CN=Adams, Sam,OU=Beer, DC=Drinkers,DC=local')。
团体类似于 CN=Drunks, OU=Groups,DC=Bars,DC=local。
这在同域时有效,但在跨域时出现错误。我正在使用的用户帐户在本地具有管理员权限,在另一个域中具有读取权限。
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, m_AD_connection.Domain, m_AD_connection.Path, ContextOptions.Negotiate, m_AD_connection.UserName, m_AD_connection.Password))
{
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, GroupName);
if (group != null)
{
group.Members.Add(pc, IdentityType.DistinguishedName, DN);
group.Save();
return true;
}
else
return false;
}
对我需要做什么有什么建议吗?
您的问题在这一行:
group.Members.Add(pc, IdentityType.DistinguishedName, DN);
context
参数应该是查找用户所需的上下文,而不是组。因此,您需要为第二个域创建一个新的 PrincipalContext
并将其传递给 Add()
。例如:
var drinkersPc = new PrincipalContext(ContextType.Domain, "drinkers.local");
group.Members.Add(drinkersPc, IdentityType.DistinguishedName, DN);
我想使用 C# 将用户从一个域添加到本地域。这些域具有双向信任。目前我收到错误
'No principal matching the specified parameters was found.' on the .Save() line.
我有用户的 DN(例如 'CN=Adams, Sam,OU=Beer, DC=Drinkers,DC=local')。
团体类似于 CN=Drunks, OU=Groups,DC=Bars,DC=local。
这在同域时有效,但在跨域时出现错误。我正在使用的用户帐户在本地具有管理员权限,在另一个域中具有读取权限。
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, m_AD_connection.Domain, m_AD_connection.Path, ContextOptions.Negotiate, m_AD_connection.UserName, m_AD_connection.Password))
{
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, GroupName);
if (group != null)
{
group.Members.Add(pc, IdentityType.DistinguishedName, DN);
group.Save();
return true;
}
else
return false;
}
对我需要做什么有什么建议吗?
您的问题在这一行:
group.Members.Add(pc, IdentityType.DistinguishedName, DN);
context
参数应该是查找用户所需的上下文,而不是组。因此,您需要为第二个域创建一个新的 PrincipalContext
并将其传递给 Add()
。例如:
var drinkersPc = new PrincipalContext(ContextType.Domain, "drinkers.local");
group.Members.Add(drinkersPc, IdentityType.DistinguishedName, DN);