diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-10-06 16:18:30 +1100 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2023-10-06 16:18:30 +1100 |
| commit | 2c30354c4af308bf9856a3651d9ba3a686eed936 (patch) | |
| tree | 74fe8ee40fb519feb5a865622fc32531b94220f7 /SecurityIdentifier.cs | |
| parent | 3d5f6e47bd74ce77d5ec253f51b7cef1b42099ef (diff) | |
More work on AclDialog
Diffstat (limited to 'SecurityIdentifier.cs')
| -rw-r--r-- | SecurityIdentifier.cs | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/SecurityIdentifier.cs b/SecurityIdentifier.cs index 075788d..8ffaa1b 100644 --- a/SecurityIdentifier.cs +++ b/SecurityIdentifier.cs @@ -15,6 +15,7 @@ public static class WellKnownSid { public static readonly SecurityIdentifier CreatorGroupSid = new("S-1-3-1"); private static readonly (string name, SecurityIdentifier sid)[] nameMap = new[] { + ( "Nobody", NullSid ), ( "Everyone", WorldSid ), ( "LOCAL", LocalSid ), ( "CREATOR OWNER", CreatorGroupSid ), @@ -106,14 +107,19 @@ public class SecurityIdentifier { } } - public override string ToString() { - var identifierAuthority = new BigInteger(SidStruct.IdentifierAuthority, true, true); - var subAuthorities = string.Join('-',SidStruct.SubAuthorities.Select(sa => sa.ToString())); - if(!string.IsNullOrEmpty(subAuthorities)) - subAuthorities = "-" + subAuthorities; - return $"S-{SidStruct.Revision}-{identifierAuthority}{subAuthorities}"; + public string SddlForm { + get { + var identifierAuthority = new BigInteger(SidStruct.IdentifierAuthority, true, true); + var subAuthorities = string.Join('-',SidStruct.SubAuthorities.Select(sa => sa.ToString())); + if(!string.IsNullOrEmpty(subAuthorities)) + subAuthorities = "-" + subAuthorities; + return $"S-{SidStruct.Revision}-{identifierAuthority}{subAuthorities}"; + } } + public override string ToString() => + WellKnownSid.TranslateSid(this) ?? SddlForm; + public static bool operator ==(SecurityIdentifier? x, SecurityIdentifier? y) => x?.SidStruct.Equals(y?.SidStruct) ?? false; |
