protected Ace(AceType aceType, PrincipalIdentifier principal, AccessMask accessMask) { Requires.Argument <PrincipalIdentifier>("principal", principal).NotNull(); this.AceType = aceType; this.Principal = principal; this.AccessMask = accessMask; }
internal static unsafe PrincipalIdentifier FromNative(NativeTypes.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER *nativePtr) { PrincipalIdentifier principalIdentifier = null; switch (nativePtr->Kind) { case NativeTypes.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND_X509: { principalIdentifier = X509PrincipalIdentifier.FromNative( (NativeTypes.FABRIC_SECURITY_X509_PRINCIPAL_IDENTIFIER *)nativePtr->Value); break; } case NativeTypes.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND_ROLE: { principalIdentifier = RolePrincipalIdentifier.FromNative( (NativeTypes.FABRIC_SECURITY_ROLE_PRINCIPAL_IDENTIFIER *)nativePtr->Value); break; } case NativeTypes.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND_CLAIM: { principalIdentifier = ClaimPrincipalIdentifier.FromNative( (NativeTypes.FABRIC_SECURITY_CLAIM_PRINCIPAL_IDENTIFIER *)nativePtr->Value); break; } case NativeTypes.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND_WINDOWS: { principalIdentifier = WindowsPrincipalIdentifier.FromNative( (NativeTypes.FABRIC_SECURITY_WINDOWS_PRINCIPAL_IDENTIFIER *)nativePtr->Value); break; } default: { AppTrace.TraceSource.WriteError( "PrincipalIdentifier.FromNative", "Unknown FABRIC_SECURITY_PRINCIPAL_IDENTIFIER_KIND : {0}", nativePtr->Kind); throw new ArgumentOutOfRangeException("FABRIC_SECURITY_PRINCIPAL_IDENTIFIER.Kind"); } } return(principalIdentifier); }
internal static unsafe Ace FromNative(NativeTypes.FABRIC_SECURITY_ACE nativeAce) { var principal = PrincipalIdentifier.FromNative((NativeTypes.FABRIC_SECURITY_PRINCIPAL_IDENTIFIER *)nativeAce.Principal); var accessMask = (AccessMask)nativeAce.AccessMask; var aceType = (AceType)nativeAce.AceType; if (aceType == AceType.Allowed) { return(new AllowedAce(principal, accessMask)); } else { AppTrace.TraceSource.WriteError( "Ace.FromNative", "Unknown FABRIC_SECURITY_ACE_TYPE : {0}", nativeAce.AceType); throw new ArgumentOutOfRangeException("FABRIC_SECURITY_ACE.AceType"); } }
protected Ace(AceType aceType, PrincipalIdentifier principal) : this(aceType, principal, AccessMask.None) { }