gpt4 book ai didi

c# - 为什么 UserPrincipal.GetAuthorizationGroups() 可能对一个委托(delegate)人失败而不是另一个委托(delegate)人?

转载 作者:行者123 更新时间:2023-11-30 16:09:55 26 4
gpt4 key购买 nike

我在 ASP.Net MVC 网站中运行以下代码:

  using (var ctx = new PrincipalContext(ContextType.Domain, DOMAIN))
using (var userPrincipal = UserPrincipal.FindByIdentity(ctx, principal.Identity.Name))
using (var groups = userPrincipal.GetAuthorizationGroups())

代码使用自定义 RoleProvider,变量“principal”是 HttpContext.Current.User。 DOMAIN 是我的本地域。

这段代码在我登录站点时运行良好,但如果我以两个测试用户中的任何一个身份登录,则会在最后一行抛出异常。

While trying to retrieve the authorization groups, an error (5) occurred.

测试用户在域上的权限较少,但是是事件目录中的用户。我尝试使用提供我的用户名和密码的替代构造函数创建 PrincipalContext,但这对行为没有任何影响。

这既发生在我的开发机器上,也发生在单独的登台服务器上,所以我认为它与本地权限没有任何关系。我也看不出它与用户权限有什么关系,因为我希望以 IIS 应用程序池用户(模拟已关闭)或 PrincipalContext 构造函数中指定的用户身份发出事件目录请求。

非常感谢收到有关正在发生的事情的任何建议。

最佳答案

仅仅他们是 Active Directory 中的用户是不够的。 IIS 应用程序池用户需要是 Windows 授权访问组的成员才能执行 GetAuthorizationGroups。

在这里回答:While trying to retrieve the authorization groups, an error (5) occurred

关于c# - 为什么 UserPrincipal.GetAuthorizationGroups() 可能对一个委托(delegate)人失败而不是另一个委托(delegate)人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26849669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com