public bool Evaluate(EvaluationContext evaluationContext, ref object state) { // get claims from authorized issuer ClaimSet issuedClaims = null; foreach (ClaimSet cs in evaluationContext.ClaimSets) { // If the issuer of the ClaimSet is this STS... if ( cs.Issuer.ContainsClaim ( Claim.CreateDnsClaim("IPKey"))) { issuedClaims = cs; } } if (issuedClaims == null) { throw new SecurityException("Unable to authenticate caller. Invalid claimset provided."); } CustomIdentity identity = new CustomIdentity("Claims"); CustomPrincipal newPrincipal = new CustomPrincipal(identity, issuedClaims); evaluationContext.Properties["Principal"] = newPrincipal; return true; }
public bool Evaluate(EvaluationContext evaluationContext, ref object state) { if (evaluationContext.Properties.ContainsKey("Identities")) { IIdentity identity; ClaimSet claims = MapClaims(evaluationContext, out identity); CustomPrincipal newPrincipal = new CustomPrincipal(identity, claims); evaluationContext.Properties["Principal"] = newPrincipal; evaluationContext.AddClaimSet(this, claims); } return true; }