2009-07-16 41 views
15

Tôi đang xây dựng Xác thực thư mục hoạt động trong ứng dụng của mình và tôi định liên kết tài khoản nội bộ của ứng dụng với SID miền của người dùng. Nó dễ dàng hơn cho tôi để làm việc với các định dạng chuỗi của sid hơn một mảng byte vì vậy tôi đã có kế hoạch để lưu trữ nó trong cơ sở dữ liệu như là một chuỗi. Bao lâu tôi nên làm cho các lĩnh vực để đảm bảo SID sẽ không bị cắt ngắn?Độ dài tối đa của SID ở định dạng SDDL

Trả lời

27

Tôi có cùng một câu hỏi, và tôi tin rằng câu trả lời đúng là:

SID như chuỗi: 184 ký tự, hoặc varchar (184) trong SQL Server

SID như chuỗi các chữ số Hex: 136 ký tự hoặc varchar (136) trong SQL server

SID như nhị phân: 68 byte, hoặc varbinary (68) trong SQL server

tôi đã không kiểm tra toán bản thân mình, nhưng các kỹ thuật sử dụng ở đây trông hợp lệ: https://groups.google.com/d/msg/microsoft.public.dotnet.security/NpIi7c2Toi8/31SVhcepY58J

Tham khảo các chương trình được viết bởi Russell Mangel vào ngày 19 tháng tám năm 2006, cũng sao chép ở đây để tham khảo:

Vì vậy, câu trả lời cho câu hỏi của tôi là:

varbinary (68) - nhị phân tinh khiết varchar (136) - (68 * 2) = hexString varchar (184) - SID Chuỗi

tôi đã viết một chương trình nhỏ để kiểm tra, thông báo rằng NET 2.0 có SecurityIdentifier.MaxBinaryLength, tôi không biết về điều này.

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); 

Kết quả ------------------------------

SID Min. num Số byte: 8 SID Min. num Bytes: 68 Max length của SID ở định dạng String: 184 S-1-281474976710655-4294967295-4294967295-4294967295-4294967295-4294967295- 4294967295-4294967295-4294967295-4294967295-4294967295-4294967295 -4294967295-4294967295-4294967295 -4294967295


Các vấn đề liên quan