0

当我将我的应用程序发布到我的 Web 服务器时。在 IIS 管理器中,我为我正在使用的应用程序池提供Network Service.

在我的应用程序中,我提供了从特定 Active Directory 组中删除/添加用户的功能。这是代码:

public static void RemoveUserFromGroup(string userId, string groupName)
{
    try
    {
        using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "myDomain"))
        {
            GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, groupName);
            group.Members.Remove(pc, IdentityType.UserPrincipalName, userId);
            group.Save();
        }
    }
    catch (Exception E)
    {
        throw E;

    }
}

这在我测试本地时有效,因为我的帐户在处理 AD 时具有管理员权限。所以只是为了检查,在页面加载时,我正在通过以下方式记录 Windows 用户名:

var thread = '@System.Security.Principal.WindowsIdentity.GetCurrent().Name';
console.log(thread);

这导致NT AUTHORITYNETWORK SERVICE. 但是当我尝试从 AD 组中删除用户时.. 我得到:

访问被拒绝

我如何授予Network Service访问权限?还是有另一种方法可以做到这一点?

4

1 回答 1

1

“NT AUTHORITY\Network Service”是一个内置的机器级Windows 帐户,它被多种进程使用,而不仅仅是 IIS(加载服务控制面板(开始>运行>“services.msc”)并查看在“登录身份”列。您将看到多个 Windows 组件在此身份下运行。因此,您不应该更改帐户的权限和权限 - 您可能无法这样做!

您可以做的是创建一个具有适当权限的域用户,并将应用程序池配置为使用该身份运行。或者,它看起来像允许指定用户名和密码的构造函数之一,尽管这意味着您需要自己将用户名和密码存储在某个地方。PrincipalContext

于 2017-07-27T17:31:43.207 回答