正在跨域设置文件夹权限



我有一个应用程序,用于执行许多在域上隔离用户的操作,例如创建Active Directory结构、用户和组,以及将用户分配到不同的组。

在AD中创建所有内容后,我想为我新创建的AD组之一分配对新创建文件夹的访问权限。

我想从不同域上的本地计算机运行应用程序,而不是必须登录到域中的计算机上,然后从那里运行应用程序。

除了设置访问规则外,我的应用程序中的所有内容在本地机器上似乎都能正常工作;失败的原因:

"无法翻译部分或全部标识引用"。

从域中运行时,代码运行良好。我也尝试过使用模拟,但这没有区别

if (Directory.Exists(sDirectory))
    {
      using (Impersonation impUser = new Impersonation(sAdminUserName, _sDomain, sAdminPassword))
      {
        DirectoryInfo diClientDirectory = new DirectoryInfo(sDirectory);
        DirectorySecurity dsClientDirectory = diClientDirectory.GetAccessControl();
        FileSystemAccessRule fsAccessRules = new FileSystemAccessRule(sSecurityGroup, FileSystemRights.FullControl, (InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit), PropagationFlags.InheritOnly, AccessControlType.Allow);
        **dsClientDirectory.AddAccessRule(fsAccessRules);  //THIS LINE THROWS THE EXCEPTION**
        diClientDirectory.SetAccessControl(dsClientDirectory);
      }

这通常意味着授予权限的组不存在或无法在目标计算机上解析。检查目标域中是否存在具有该名称的组,或者域之间是否存在适当的信任关系。

正如akton所说,检查AD之间的信任关系。

此外,请检查您的跑步环境。当我不得不通过C#访问AD时,我遇到了这样的问题:如果用户没有权限对另一个AD进行这种修改,它就会失败。

最后一点,组名和路径。您的组名称是否包含域名(sSecurityGroup)?也许你的目录路径有路径问题(sDirectory)?

相关内容

  • 没有找到相关文章

最新更新