我有一个应用程序,它用于执行许多操作以隔离域上的用户,例如创建 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);
}