object.ReferenceEquals is used to 'match'.
public virtual bool TryRemoveClaim(Claim claim) { if (claim == null) { return false; } bool removed = false; for (int i = 0; i < _instanceClaims.Count; i++) { if (object.ReferenceEquals(_instanceClaims[i], claim)) { _instanceClaims.RemoveAt(i); removed = true; break; } } return removed; }
public static void ReplaceClaim(this ClaimsIdentity identity, string type, string value) { identity.TryRemoveClaim(identity.Claims.FirstOrDefault(c => c.Type == type)); identity.AddClaim(new Claim(type, value)); }