我正在创建一个 PrincipalContext 对象,用于从我们的 AD 数据库中检索用户组(然后我们使用这些对象对站点的各个部分进行身份验证)。
这曾经是使用表单身份验证完成的,所以代码看起来像这样
PrincipalContext pc =
new PrincipalContext(ContextType.Domain, "domain.com", username, password);
UserPrincipal usp =
UserPrincipal.FindByIdentity(pc, IdentityType.Guid, user.Guid.ToString());
foreach (var group in usp.GetGroups())
{
// Add group to collection
}
但是,我们最近切换到 windows 身份验证,我不再可以访问用户的密码。
如何使用当前用户的凭据搜索 AD 数据库?我尝试过使用模拟,但它会引发An operations error occurred
错误FindByIdentity
。如果我完全忘记了身份验证,我会限制返回的组数。