Я как очень не интересуюсь библиотеками, хотя это определенно полезно. Я больше искал некоторый "псевдо код", который иллюстрирует, что обработка говорит Ваш средний набор флагов и набор более длинных споров как пример.
У меня был тот же вопрос, и я считаю, что правильный ответ:
Я сам не проверял математику, но метод, используемый здесь, выглядит допустимым : https://groups.google.com/d/msg/microsoft.public.dotnet.security/NpIi7c2Toi8/31SVhcepY58J
См. Программу, написанную Расселом Мангелем 19 августа 2006 г., также скопированную здесь для справки. :
Итак, ответ на мой вопрос:
varbinary (68) - чистый двоичный
varchar (136) - (68 * 2) = hexString
varchar (184) - Строка SIDЯ написал небольшую программу для тестирования, обратите внимание, что .NET 2.0 имеет SecurityIdentifier.MaxBinaryLength, I не знал об этом.
Console.WriteLine ("SID Min. num Bytes: {0}", SecurityIdentifier.MinBinaryLength); Console.WriteLine ("Макс. Количество байт SID: {0}", SecurityIdentifier.MaxBinaryLength); Байт [] байтов = новый байт [SecurityIdentifier.MaxBinaryLength]; for (Int32 i = 0; i
Результаты
SID Мин. кол-во байтов: 8 SID Макс. число Байт: 68 Максимальная длина SID в строковом формате: 184 S-1-281474976710655-4294967295-4294967295-4294967295-4294967295-4294967295- 4294967295-4294967295-4294967295-4294967295-4294967295-4294967295- 4294967295-4294967295-4294967295-4294967295