public virtual void AddClaim(Claim claim) { if (claim == null) { throw new ArgumentNullException(nameof(claim)); } ClaimTypes.Add(claim.Type); ClaimValues.Add(claim.Value); }
public static bool CheckClaim(ClaimsPrincipal user, ClaimTypes ct, ClaimValues cv) { Claim claim = user.FindFirst(ClaimsHelper.SetTypePrefix((int)ct)); if (claim == null) { return(false); } ClaimValues claimed = (ClaimValues)int.Parse(claim.Value); return((claimed & cv) != 0); // make sure one of OR-ed flags is present }
public virtual void RemoveClaim(Claim claim) { if (claim == null) { throw new ArgumentNullException(nameof(claim)); } var index = ClaimTypes.IndexOf(claim.Type); ClaimTypes.Remove(claim.Type); ClaimValues.RemoveAt(index); }
public IEnumerable <Claim> GetClaimset() { string[] types = ClaimTypes.Split(";", StringSplitOptions.RemoveEmptyEntries); string[] values = ClaimValues.Split(";", StringSplitOptions.RemoveEmptyEntries); if (types.Length != values.Length) { throw new IndexOutOfRangeException("Claim types and values length mismatch."); } List <Claim> claims = new List <Claim>(); for (int i = 0; i < types.Length; i++) { claims.Add(new Claim(types[i], values[i])); } return(claims); }
public RestrictAttribute(ClaimValues fullAccess) { this.fullAccess = fullAccess; }
public RestrictAttribute(ClaimTypes ct, ClaimValues cv) { _claimType = ct; _claimValues = cv; }
public BypassAttribute(ClaimTypes ct, ClaimValues cv, bool any) { ClaimType = ct; ClaimValues = cv; Any = any; }
public BypassAttribute(ClaimTypes ct, ClaimValues cv) : this(ct, cv, false) { }
public static string Get(ClaimValues enumValue) { return(Enum.GetName(typeof(ClaimValues), enumValue)); }