2009-07-16 3 views
15

Я создаю аутентификацию Active Directory в своем приложении, и я планирую связать внутренние учетные записи моего приложения с SID домена пользователя. Мне легче работать со строковым форматом sid, чем с байтовым массивом, поэтому я планировал сохранить его в базе данных в виде строки. Как долго я должен сделать поле для обеспечения того, чтобы SID не усекались?Какова максимальная длина SID в формате SDDL

ответ

27

У меня был тот же вопрос, и я считаю, что правильный ответ:

SID в виде строки: 184 символов, или VARCHAR (184) в SQL Server

SID в виде строки шестнадцатеричных цифр: 136 символов или VARCHAR (136) в SQL Server

SID в двоичном виде: 68 байт, или VARBINARY (68) в SQL Server

Я не проверил математику сам, но метод, используемый здесь выглядит действительно: https://groups.google.com/d/msg/microsoft.public.dotnet.security/NpIi7c2Toi8/31SVhcepY58J

Обратитесь к программе, написанной Расселом Мангеля авг 19, 2006, также копируются здесь для справки:

Таким образом, ответ на мой вопрос:

VARBINARY (68) - двоичном VARCHAR (136) - (68 * 2) = шестнадцатеричной VARCHAR (184) - SID Строка

Я написал небольшую программу, чтобы проверить, уведомление, что .NET 2.0 имеет SecurityIdentifier.MaxBinaryLength, я не знал об этом.

Console.WriteLine("SID Min. num Bytes: {0}", 
SecurityIdentifier.MinBinaryLength); 
Console.WriteLine("SID Min. num Bytes: {0}", 
SecurityIdentifier.MaxBinaryLength); 
Byte[] bytes = new byte[SecurityIdentifier.MaxBinaryLength]; 
for (Int32 i = 0; i < bytes.Length; i++) 
{ 
bytes[i] = 0xFF; 
} 
bytes[0] = 0x01; // Must be 1 
bytes[1] = 0x0F; // Max 15 (base10) 
SecurityIdentifier sid = new SecurityIdentifier(bytes, 0); 
String sidString = sid.ToString(); 
Console.WriteLine("Max length of SID in String format: {0} ", 
sidString.Length); 
Console.WriteLine(sidString); 

Результаты ------------------------------

SID Мин. num Баны: 8 SID Мин. NUM Б: 68 Максимальная длина SID в формате Строка: 184 S-1-281474976710655-4294967295-4294967295-4294967295-4294967295-4294967295- 4294967295-4294967295-4294967295-4294967295-4294967295-4294967295 -4294967295-4294967295-4294967295 -4294967295


 Смежные вопросы

  • Нет связанных вопросов^_^