Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CreateFromParts()

void System.Security.Principal.SecurityIdentifier.CreateFromParts ( IdentifierAuthority identifierAuthority,
ReadOnlySpan< int > subAuthorities )
inlineprivate

Definition at line 53 of file SecurityIdentifier.cs.

54 {
55 if (subAuthorities.Length > 15)
56 {
57 throw new ArgumentOutOfRangeException("subAuthorities.Length", subAuthorities.Length, System.SR.Format(System.SR.IdentityReference_InvalidNumberOfSubauthorities, 15));
58 }
59 if (identifierAuthority < IdentifierAuthority.NullAuthority || identifierAuthority > (IdentifierAuthority)281474976710655L)
60 {
61 throw new ArgumentOutOfRangeException("identifierAuthority", identifierAuthority, System.SR.IdentityReference_IdentifierAuthorityTooLarge);
62 }
63 _identifierAuthority = identifierAuthority;
64 _subAuthorities = subAuthorities.ToArray();
65 _binaryForm = new byte[8 + 4 * _subAuthorities.Length];
67 _binaryForm[1] = (byte)_subAuthorities.Length;
68 for (int i = 0; i < 6; i++)
69 {
70 _binaryForm[2 + i] = (byte)(((ulong)_identifierAuthority >> (5 - i) * 8) & 0xFF);
71 }
72 for (int j = 0; j < _subAuthorities.Length; j++)
73 {
74 for (byte b = 0; b < 4; b++)
75 {
76 _binaryForm[8 + 4 * j + b] = (byte)((ulong)_subAuthorities[j] >> b * 8);
77 }
78 }
79 }
static string IdentityReference_IdentifierAuthorityTooLarge
Definition SR.cs:42
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string IdentityReference_InvalidNumberOfSubauthorities
Definition SR.cs:46
Definition SR.cs:7

References System.Security.Principal.SecurityIdentifier._binaryForm, System.Security.Principal.SecurityIdentifier._identifierAuthority, System.Security.Principal.SecurityIdentifier._subAuthorities, System.SR.Format(), System.SR.IdentityReference_IdentifierAuthorityTooLarge, System.SR.IdentityReference_InvalidNumberOfSubauthorities, System.L, System.ReadOnlySpan< T >.Length, System.Security.Principal.SecurityIdentifier.Revision, and System.ReadOnlySpan< T >.ToArray().

Referenced by System.Security.Principal.SecurityIdentifier.SecurityIdentifier(), and System.Security.Principal.SecurityIdentifier.CreateFromBinaryForm().