System.Security.AccessControl:AceType与AccessControlType的关系及转换问询
AceType 与 AccessControlType 的关系解析
二者属于完全不同的概念,并非细化与被细化的关系:
核心区别
System.Security.AccessControl.AceType:用于标识ACE(访问控制项)的完整类型,枚举值覆盖了所有ACE的用途,包括权限控制类(如AccessAllowed、AccessDenied)和系统审计/警报类(如SystemAudit、SystemAlarm)等。System.Security.AccessControl.AccessControlType:仅针对权限的授予或拒绝动作,只有Allow(允许)和Deny(拒绝)两个枚举值,是权限逻辑层面的窄分类。
类型映射的可能性
虽然不是直接的细化关系,但针对权限控制类的AceType,可以手动映射到AccessControlType:
AceType.AccessAllowed→AccessControlType.AllowAceType.AccessDenied→AccessControlType.Deny
而像SystemAudit、SystemAlarm这类非权限控制的AceType,没有对应的AccessControlType值,因为它们不属于权限授予/拒绝的范畴。
以下是C#中实现该映射的示例代码:
public static AccessControlType? ConvertAceTypeToAccessControlType(AceType aceType) { return aceType switch { AceType.AccessAllowed => AccessControlType.Allow, AceType.AccessDenied => AccessControlType.Deny, _ => null // 非权限类AceType返回null }; }
内容的提问来源于stack exchange,提问作者Amir M
相关产品推荐
相关产品推荐

