我有两个域设置了双向信任。
域 A 有一个组(组 A)和一个成员(用户 A)。
域 B 有一个组(组 B),组 A(来自另一个域)作为成员。
我正在检查:
if(User.IsInRole(group B))
{
// logging in as User A should provide access because this use is part of Group A which is part of Group B
}
但这不起作用。
我在这里想念什么?
我有两个域设置了双向信任。
域 A 有一个组(组 A)和一个成员(用户 A)。
域 B 有一个组(组 B),组 A(来自另一个域)作为成员。
我正在检查:
if(User.IsInRole(group B))
{
// logging in as User A should provide access because this use is part of Group A which is part of Group B
}
但这不起作用。
我在这里想念什么?
在以用户身份登录并加入该域的计算机上运行时,这对我来说失败了。
private static SecurityIdentifier GetGroupSid(string domainName, string groupName)
{
using (var d = Domain.GetDomain(new DirectoryContext(DirectoryContextType.Domain, domainName)))
{
using (var context = new PrincipalContext(ContextType.Domain, d.Name))
{
using (var group = GroupPrincipal.FindByIdentity(context, groupName))
{
return group.Sid;
}
}
}
}
[Test]
public void should_check_role_with_sid()
{
var barDomain = "bar.example.com";
var groupinBar = GetGroupSid(barDomain, "group_in_bar");
var identity = WindowsIdentity.GetCurrent();
var windowsPrincipal = new WindowsPrincipal(identity);
Assert.That(windowsPrincipal.IsInRole(groupinBar), Is.True, "Checking role " + groupinBar);
}