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

◆ InspectAce()

bool System.Security.AccessControl.CommonAcl.InspectAce ( ref GenericAce ace,
bool isDacl )
inlineprivateinherited

Definition at line 359 of file CommonAcl.cs.

360 {
361 KnownAce knownAce = ace as KnownAce;
362 if (knownAce != null && knownAce.AccessMask == 0)
363 {
364 return false;
365 }
366 if (!IsContainer)
367 {
368 if ((ace.AceFlags & AceFlags.InheritOnly) != 0)
369 {
370 return false;
371 }
372 if ((ace.AceFlags & AceFlags.InheritanceFlags) != 0)
373 {
374 ace.AceFlags &= ~AceFlags.InheritanceFlags;
375 }
376 }
377 else
378 {
379 if ((ace.AceFlags & AceFlags.InheritOnly) != 0 && (ace.AceFlags & AceFlags.ContainerInherit) == 0 && (ace.AceFlags & AceFlags.ObjectInherit) == 0)
380 {
381 return false;
382 }
383 if ((ace.AceFlags & AceFlags.NoPropagateInherit) != 0 && (ace.AceFlags & AceFlags.ContainerInherit) == 0 && (ace.AceFlags & AceFlags.ObjectInherit) == 0)
384 {
385 ace.AceFlags &= ~AceFlags.NoPropagateInherit;
386 }
387 }
388 QualifiedAce qualifiedAce = knownAce as QualifiedAce;
389 if (isDacl)
390 {
391 ace.AceFlags &= ~AceFlags.AuditFlags;
392 if (qualifiedAce != null && qualifiedAce.AceQualifier != 0 && qualifiedAce.AceQualifier != AceQualifier.AccessDenied)
393 {
394 return false;
395 }
396 }
397 else
398 {
399 if ((ace.AceFlags & AceFlags.AuditFlags) == 0)
400 {
401 return false;
402 }
403 if (qualifiedAce != null && qualifiedAce.AceQualifier != AceQualifier.SystemAudit)
404 {
405 return false;
406 }
407 }
408 return true;
409 }

References System.Security.AccessControl.KnownAce.AccessMask, System.Security.AccessControl.QualifiedAce.AceQualifier, System.Security.AccessControl.GenericAce.AuditFlags, System.Security.AccessControl.GenericAce.InheritanceFlags, and System.Security.AccessControl.CommonAcl.IsContainer.

Referenced by System.Security.AccessControl.CommonAcl.CommonAcl(), System.Security.AccessControl.CommonAcl.AddQualifiedAce(), System.Security.AccessControl.CommonAcl.RemoveMeaninglessAcesAndFlags(), and System.Security.AccessControl.CommonAcl.SetQualifiedAce().