gpt4 book ai didi

c# - 通过 ASP.NET 访问 Active Directory 记录

转载 作者:太空狗 更新时间:2023-10-29 22:32:24 25 4
gpt4 key购买 nike

似乎我的本地计算机没有将数据写入 Active Directory 所需的权限。我可以读取数据但不能更改和更新它。调用 .save() 命令后,我收到下一条消息:“访问被拒绝”。

我不使用任何登录详细信息来登录 Active Directory,我也不希望使用任何详细信息。我知道它通常与应用程序池和 IIS 有关,但除了尝试和更改一些次要选项和功能之外,我似乎找不到可行的解决方案。

编辑:这是我要执行的代码:

using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "DOMAINANME"))
{
GroupPrincipal group = new GroupPrincipal.FindByIdentity(pc, "GROUPNAME");
group.Members.Remove(pc, IdentityType.SamAccountName, "USERNAME");
group.Save();
}

最佳答案

您的直觉是正确的 - 您需要对应用程序池帐户具有适当的权限。

最简单的方法是:

  1. 创建一个新的域用户帐户
  2. 将其添加到“域管理员”组
  3. 在您的 iis 服务器中,找到您的应用程序使用的池并将池标识更改为新创建的用户

这样,从用户到 iis 的所有请求都在域管理员的上下文中运行,因此从 iis 到 AD 的所有请求都会成功 - 域管理员可以操作 AD。

虽然上述解决方案可行,但可能不推荐。这是因为该应用程序除了连接到 AD 之外还会做很多事情,如果有可能被滥用的地方,您可能会在域管理上下文中运行不需要的请求。

通常这样的应用程序会有层,一个前层和一个后层。前端层在受限上下文中运行,负责所有用户请求。这是您的应用程序。后台层是另一个网络应用程序,它不能从互联网访问,只能从本地内部网访问。此应用程序在域管理上下文中运行,并充当 AD 的网关。前台应用程序使用后台应用程序与 AD 对话。

关于c# - 通过 ASP.NET 访问 Active Directory 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21966291/

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