[英]Setting folder permissions across domain
我有一個應用程序,該應用程序用於執行許多操作來隔離域上的用戶,例如創建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所說的那樣,檢查廣告之間的信任關系。
此外,請檢查您的運行環境。 當我不得不通過C#接觸AD時,我遇到了此類問題:如果用戶沒有權限在另一個AD上進行此類修改,則它將失敗。
最后一點,組名稱和路徑。 您的組名是否包含域名(sSecurityGroup)? 也許您的目錄路徑存在路徑問題(sDirectory)?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.