2009-07-16 9 views
15

Je construis l'authentification Active Directory dans mon application et je prévois de lier les comptes internes de mon application au SID du domaine d'un utilisateur. Il est plus facile pour moi de travailler avec le format de chaîne du Sid qu'un tableau d'octets, donc je prévoyais de le stocker dans la base de données sous forme de chaîne. Combien de temps dois-je faire pour que les SID ne soient pas tronqués?Quelle est la longueur maximale d'un SID au format SDDL

Répondre

27

J'ai eu la même question, et je crois que la bonne réponse est:

SID en tant que chaîne: 184 caractères ou varchar (184) dans SQL Server

SID en tant que chaîne de chiffres Hex: 136 caractères ou varchar (136) dans SQL Server

SID binaire: 68 octets, ou varbinary (68) dans SQL Server

Je n'ai pas vérifié moi-même les mathématiques, mais la technique utilisée ici semble valide: https://groups.google.com/d/msg/microsoft.public.dotnet.security/NpIi7c2Toi8/31SVhcepY58J

Référez-vous au programme écrit par Russell Mangel le 19 août 2006, également copié pour référence:

La réponse à ma question est la suivante:

varbinary (68) - binaire pur varchar (136) - (68 * 2) = hexstring varchar (184) - SID chaîne

I a écrit un petit programme pour tester, avis que .NET 2.0 a SecurityIdentifier.MaxBinaryLength, je ne savait pas à ce sujet.

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

Résultats ------------------------------

SID Min. num Octets: 8 SID Min. num Octets 68 Longueur maximale de SID au format Corde: 184 S-1-281474976710655-4294967295-4294967295-4294967295-4294967295-4294967295- 4294967295-4294967295-4294967295-4294967295-4294967295-4294967295 -4294967295-4294967295-4294967295 -4294967295


Questions connexes