我有winforms應用程序,其中需要訪問安全目錄。 我使用模擬並創建WindowsIdentity來訪問該文件夾。設置目錄安全性以允許用戶和拒絕全部
我的問題是編寫單元測試來測試目錄的安全性;我想編寫一個代碼,創建一個僅保護一個用戶的目錄,而不是當前運行UT的用戶(否則測試將毫無價值)。
我知道如何給某個用戶添加權限,但是我怎麼能否認剩下的,包括管理員? (如果用戶運行UT是一個管理員)(這是明智的事情嗎?)
DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
directorySecurity.AddAccessRule(new FileSystemAccessRule("Domain\SecuredUser",
FileSystemRights.FullControl,
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.InheritOnly,
AccessControlType.Allow));
directorySecurity.RemoveAccessRule(new FileSystemAccessRule("??",
FileSystemRights.FullControl,
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.InheritOnly,
AccessControlType.Deny));
directoryInfo.SetAccessControl(directorySecurity);
這是行不通的。我不知道我應該否認誰。域\管理員,域\管理員,我...沒有人被拒絕,並且當我檢查文件夾的安全 - SecuredUser有權訪問該文件夾,但權限不檢查,即使我指定FullControl。
基本上我想要實現代碼:
<authorization>
<allow users ="Domain\User" />
<deny users="*" />
</authorization>
我在想冒充UT運行與沒有權限的弱用戶,但是這會導致:冒充 - >運行UT - >模擬 - >訪問文件夾,我不確定這是否是正確的設計。
幫助將不勝感激,謝謝。
我不知道ASP,只是評論文件夾權限...文件夾權限是如果你想訪問文件夾/文件的讀/寫。它與提供文件無關。該框架處理授權請求的過程,但我不確定此過程中涉及的所有組件。 – 2010-06-07 15:46:53
@布萊恩,你是什麼意思,'它與提供文件無關'?我不確定我明白你的意思。 – Rita 2010-06-07 19:11:11
訪問用戶以導航到http://www.mysite.com/myfile.aspx不會查看目錄權限,即使對於Windows安全應用程序。 – 2010-06-07 21:02:05