首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

檔案與目錄存取控制 (一):DACL/SACL 核心概念與 .NET 存取控制類別架構

     編輯:關於.NET

.NET 透過 System.Security.AccessControl 命名空間封裝 Windows ACL 系統,提供型別安全的存取控制程式設計介面。本節建立核心概念地圖。

兩大存取控制清單

清單全名功能組成
DACLDiscretionary Access Control List控制**誰能存取**資源 (允許/拒絕)多個 ACE (Access Control Entry)
SACLSystem Access Control List控制**何種存取被稽核** (成功/失敗)多個稽核 ACE

.NET 核心類別對照

資源類型安全性類別存取規則類別稽核規則類別
目錄DirectorySecurityFileSystemAccessRuleFileSystemAuditRule
檔案FileSecurityFileSystemAccessRuleFileSystemAuditRule
登錄機碼RegistrySecurityRegistryAccessRuleRegistryAuditRule
Mutex/Event/SemaphoreMutexSecurity/EventWaitHandleSecurity/...對應存取規則對應稽核規則

DirectorySecurity / FileSecurity 關鍵成員

  • GetAccessRules(includeExplicit, includeInherited, targetType) — 列舉規則
  • AddAccessRule / SetAccessRule / RemoveAccessRule — 修改 DACL
  • AddAuditRule / SetAuditRule / RemoveAuditRule — 修改 SACL
  • SetAccessRuleProtection(isProtected, preserveInheritance) — 切斷/保留繼承
  • SetOwner / GetOwner — 擁有者管理
  • GetSecurityDescriptorSddlForm / SetSecurityDescriptorSddlForm — SDDL 序列化

FileSystemAccessRule / FileSystemAuditRule 繼承體系

FileSystemAccessRule : AuthorizationRule
    → IdentityReference (主體)
    → FileSystemRights (權限)
    → AccessControlType (Allow/Deny)
    → InheritanceFlags / PropagationFlags

FileSystemAuditRule : AuthorizationRule
    → IdentityReference
    → FileSystemRights
    → AuditFlags (Success/Failure)
    → InheritanceFlags / PropagationFlags

.NET Framework 支援 ACL 的資源類型

  • 加密金鑰 (CryptoKeySecurity)
  • 目錄
  • 事件等待控制代碼
  • 檔案
  • Mutex
  • 登錄機碼
  • Semaphore

後續章節:(二) 新增規則與原子建立、(三) 允許/拒絕優先序與繼承、(四) SACL 稽核規則實作。


本文部分內容改編自《.NET安全揭秘》
作者:玄魂
出處:https://www.cnblogs.com/xuanhun/

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved