//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.IdentityModel.Policy { using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IdentityModel.Claims; class DefaultEvaluationContext : EvaluationContext { List claimSets; Dictionary properties; DateTime expirationTime = SecurityUtils.MaxUtcDateTime; int generation; ReadOnlyCollection readOnlyClaimSets; public DefaultEvaluationContext() { this.properties = new Dictionary(); this.generation = 0; } public override int Generation { get { return this.generation; } } public override ReadOnlyCollection ClaimSets { get { if (this.claimSets == null) return EmptyReadOnlyCollection.Instance; if (this.readOnlyClaimSets == null) this.readOnlyClaimSets = new ReadOnlyCollection(this.claimSets); return this.readOnlyClaimSets; } } public override IDictionary Properties { get { return this.properties; } } public DateTime ExpirationTime { get { return this.expirationTime; } } public override void AddClaimSet(IAuthorizationPolicy policy, ClaimSet claimSet) { if (claimSet == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("claimSet"); if (this.claimSets == null) this.claimSets = new List(); this.claimSets.Add(claimSet); ++this.generation; } public override void RecordExpirationTime(DateTime expirationTime) { if (this.expirationTime > expirationTime) this.expirationTime = expirationTime; } } }