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

◆ SecurityIdentifier() [4/5]

System.Security.Principal.SecurityIdentifier.SecurityIdentifier ( WellKnownSidType sidType,
SecurityIdentifier? domainSid )
inline

Definition at line 156 of file SecurityIdentifier.cs.

157 {
158 int windowsAccountDomainSid;
159 switch (sidType)
160 {
161 case WellKnownSidType.LogonIdsSid:
163 default:
164 throw new ArgumentException(System.SR.Argument_InvalidValue, "sidType");
165 case WellKnownSidType.AccountAdministratorSid:
166 case WellKnownSidType.AccountGuestSid:
167 case WellKnownSidType.AccountKrbtgtSid:
168 case WellKnownSidType.AccountDomainAdminsSid:
169 case WellKnownSidType.AccountDomainUsersSid:
170 case WellKnownSidType.AccountDomainGuestsSid:
171 case WellKnownSidType.AccountComputersSid:
172 case WellKnownSidType.AccountControllersSid:
173 case WellKnownSidType.AccountCertAdminsSid:
174 case WellKnownSidType.AccountSchemaAdminsSid:
175 case WellKnownSidType.AccountEnterpriseAdminsSid:
176 case WellKnownSidType.AccountPolicyAdminsSid:
177 case WellKnownSidType.AccountRasAndIasServersSid:
178 {
179 if (domainSid == null)
180 {
181 throw new ArgumentNullException("domainSid", System.SR.Format(System.SR.IdentityReference_DomainSidRequired, sidType));
182 }
183 windowsAccountDomainSid = Win32.GetWindowsAccountDomainSid(domainSid, out var resultSid);
184 switch (windowsAccountDomainSid)
185 {
186 case 122:
187 throw new OutOfMemoryException();
188 case 1257:
190 default:
191 throw new Win32Exception(windowsAccountDomainSid);
192 case 0:
193 break;
194 }
195 if (resultSid != domainSid)
196 {
198 }
199 break;
200 }
201 case WellKnownSidType.NullSid:
202 case WellKnownSidType.WorldSid:
203 case WellKnownSidType.LocalSid:
204 case WellKnownSidType.CreatorOwnerSid:
205 case WellKnownSidType.CreatorGroupSid:
206 case WellKnownSidType.CreatorOwnerServerSid:
207 case WellKnownSidType.CreatorGroupServerSid:
208 case WellKnownSidType.NTAuthoritySid:
209 case WellKnownSidType.DialupSid:
210 case WellKnownSidType.NetworkSid:
211 case WellKnownSidType.BatchSid:
212 case WellKnownSidType.InteractiveSid:
213 case WellKnownSidType.ServiceSid:
214 case WellKnownSidType.AnonymousSid:
215 case WellKnownSidType.ProxySid:
216 case WellKnownSidType.EnterpriseControllersSid:
217 case WellKnownSidType.SelfSid:
218 case WellKnownSidType.AuthenticatedUserSid:
219 case WellKnownSidType.RestrictedCodeSid:
220 case WellKnownSidType.TerminalServerSid:
221 case WellKnownSidType.RemoteLogonIdSid:
222 case WellKnownSidType.LocalSystemSid:
223 case WellKnownSidType.LocalServiceSid:
224 case WellKnownSidType.NetworkServiceSid:
225 case WellKnownSidType.BuiltinDomainSid:
226 case WellKnownSidType.BuiltinAdministratorsSid:
227 case WellKnownSidType.BuiltinUsersSid:
228 case WellKnownSidType.BuiltinGuestsSid:
229 case WellKnownSidType.BuiltinPowerUsersSid:
230 case WellKnownSidType.BuiltinAccountOperatorsSid:
231 case WellKnownSidType.BuiltinSystemOperatorsSid:
232 case WellKnownSidType.BuiltinPrintOperatorsSid:
233 case WellKnownSidType.BuiltinBackupOperatorsSid:
234 case WellKnownSidType.BuiltinReplicatorSid:
235 case WellKnownSidType.BuiltinPreWindows2000CompatibleAccessSid:
236 case WellKnownSidType.BuiltinRemoteDesktopUsersSid:
237 case WellKnownSidType.BuiltinNetworkConfigurationOperatorsSid:
238 case WellKnownSidType.NtlmAuthenticationSid:
239 case WellKnownSidType.DigestAuthenticationSid:
240 case WellKnownSidType.SChannelAuthenticationSid:
241 case WellKnownSidType.ThisOrganizationSid:
242 case WellKnownSidType.OtherOrganizationSid:
243 case WellKnownSidType.BuiltinIncomingForestTrustBuildersSid:
244 case WellKnownSidType.BuiltinPerformanceMonitoringUsersSid:
245 case WellKnownSidType.BuiltinPerformanceLoggingUsersSid:
246 case WellKnownSidType.BuiltinAuthorizationAccessSid:
247 case WellKnownSidType.WinBuiltinTerminalServerLicenseServersSid:
248 case WellKnownSidType.WinBuiltinDCOMUsersSid:
249 case WellKnownSidType.WinBuiltinIUsersSid:
250 case WellKnownSidType.WinIUserSid:
251 case WellKnownSidType.WinBuiltinCryptoOperatorsSid:
252 case WellKnownSidType.WinUntrustedLabelSid:
253 case WellKnownSidType.WinLowLabelSid:
254 case WellKnownSidType.WinMediumLabelSid:
255 case WellKnownSidType.WinHighLabelSid:
256 case WellKnownSidType.WinSystemLabelSid:
257 case WellKnownSidType.WinWriteRestrictedCodeSid:
258 case WellKnownSidType.WinCreatorOwnerRightsSid:
259 case WellKnownSidType.WinCacheablePrincipalsGroupSid:
260 case WellKnownSidType.WinNonCacheablePrincipalsGroupSid:
261 case WellKnownSidType.WinEnterpriseReadonlyControllersSid:
262 case WellKnownSidType.WinAccountReadonlyControllersSid:
263 case WellKnownSidType.WinBuiltinEventLogReadersGroup:
264 case WellKnownSidType.WinNewEnterpriseReadonlyControllersSid:
265 case WellKnownSidType.WinBuiltinCertSvcDComAccessGroup:
266 case WellKnownSidType.WinMediumPlusLabelSid:
267 case WellKnownSidType.WinLocalLogonSid:
268 case WellKnownSidType.WinConsoleLogonSid:
269 case WellKnownSidType.WinThisOrganizationCertificateSid:
270 case WellKnownSidType.WinApplicationPackageAuthoritySid:
271 case WellKnownSidType.WinBuiltinAnyPackageSid:
272 case WellKnownSidType.WinCapabilityInternetClientSid:
273 case WellKnownSidType.WinCapabilityInternetClientServerSid:
274 case WellKnownSidType.WinCapabilityPrivateNetworkClientServerSid:
275 case WellKnownSidType.WinCapabilityPicturesLibrarySid:
276 case WellKnownSidType.WinCapabilityVideosLibrarySid:
277 case WellKnownSidType.WinCapabilityMusicLibrarySid:
278 case WellKnownSidType.WinCapabilityDocumentsLibrarySid:
279 case WellKnownSidType.WinCapabilitySharedUserCertificatesSid:
280 case WellKnownSidType.WinCapabilityEnterpriseAuthenticationSid:
281 case WellKnownSidType.WinCapabilityRemovableStorageSid:
282 break;
283 }
284 windowsAccountDomainSid = Win32.CreateWellKnownSid(sidType, domainSid, out var resultSid2);
285 switch (windowsAccountDomainSid)
286 {
287 case 87:
288 throw new ArgumentException(new Win32Exception(windowsAccountDomainSid).Message, "sidType/domainSid");
289 default:
290 throw new Win32Exception(windowsAccountDomainSid);
291 case 0:
292 CreateFromBinaryForm(resultSid2, 0);
293 break;
294 }
295 }
static string Argument_InvalidValue
Definition SR.cs:24
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string IdentityReference_CannotCreateLogonIdsSid
Definition SR.cs:36
static string IdentityReference_DomainSidRequired
Definition SR.cs:40
static string IdentityReference_NotAWindowsDomain
Definition SR.cs:52
Definition SR.cs:7
void CreateFromBinaryForm(byte[] binaryForm, int offset)

References System.SR.Argument_InvalidValue, System.Security.Principal.SecurityIdentifier.CreateFromBinaryForm(), System.Security.Principal.Win32.CreateWellKnownSid(), System.SR.Format(), System.Security.Principal.Win32.GetWindowsAccountDomainSid(), System.SR.IdentityReference_CannotCreateLogonIdsSid, System.SR.IdentityReference_DomainSidRequired, and System.SR.IdentityReference_NotAWindowsDomain.