Я использую моно-библиотеки c # для анализа следующей строки SDDL
O:S-1-5-21-1356517589-3987021482-2501375073-1001G:S-1-5-21-1356517589-3987021482-2501375073-513D:(A;;FA;;;SY)(A;;FA;;;BA)(A;;FA;;;S-1-5-21-1356517589-3987021482-2501375073-1001) ```
System.ArgumentException : Value was invalid.
at System.Security.Principal.SecurityIdentifier.ParseSddlForm (System.String sddlForm) [0x00150] in <07615674c8894ff1af94dc4d835a6fbb>:0
at System.Security.Principal.SecurityIdentifier..ctor (System.String sddlForm) [0x00014] in <07615674c8894ff1af94dc4d835a6fbb>:0
at System.Security.Principal.SecurityIdentifier.ParseSddlForm (System.String sddlForm, System.Int32& pos) [0x0009f] in <07615674c8894ff1af94dc4d835a6fbb>:0
at System.Security.AccessControl.RawSecurityDescriptor.ParseSddl (System.String sddlForm) [0x00060] in <07615674c8894ff1af94dc4d835a6fbb>:0
at System.Security.AccessControl.RawSecurityDescriptor..ctor (System.String sddlForm) [0x00025] in <07615674c8894ff1af94dc4d835a6fbb>:0
at SDDLServer.SecurityDescriptorParser.DecodeSDDLRequest (Sddl.SDDLRequest request) [0x00015] in <9492bfad70e04bedb8a6a6ab8da80576>:0
at SDDLServer.TestSecurityDescriptorParser.TestDecodeSDDLRequest () [0x0001b] in <9492bfad70e04bedb8a6a6ab8da80576>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0003b] in <07615674c8894ff1af94dc4d835a6fbb>:0
Сбой TestDecodeSDDL в этой строке кода
securityDescriptor = new RawSecurityDescriptor(request.StringSddl);
С помощью этого инструмента я смог убедиться, чтоСама строка SDDL является допустимой, но она лучше меня, почему происходит сбой ctor в RawSecurityDescriptor. https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Security.Principal/SecurityIdentifier.cs