当我将我的应用程序发布到我的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
访问权限?或者有另一种方法可以做到这一点吗?
答案 0 :(得分:1)
" NT AUTHORITY \ Network Service"是一个内置的计算机级别 Windows帐户,它被各种进程使用,而不仅仅是IIS(加载服务控制面板(开始>运行>" services.msc&# 34;)并查看"登录为"列。您将看到以此身份运行的多个Windows组件。因此,您不应该更改权限和权限帐户 - 您可能无法这样做!
您可以做的是创建具有适当权限的域用户,并将应用程序池配置为使用该标识运行。或者,看起来constructors for PrincipalContext
中的一个允许指定用户名和密码,但这意味着您需要自己在某处存储用户名和密码。