File: System\IdentityModel\Tokens\Saml2ProxyRestriction.cs
Project: ndp\cdf\src\WCF\IdentityModel\System.IdentityModel.csproj (System.IdentityModel)
//-----------------------------------------------------------------------
// <copyright file="Saml2ProxyRestriction.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
 
namespace System.IdentityModel.Tokens
{
    using System;
    using System.Collections.ObjectModel;
 
    /// <summary>
    /// Represents the ProxyRestriction element specified in [Saml2Core, 2.5.1.6].
    /// </summary>
    public class Saml2ProxyRestriction
    {
        private Collection<Uri> audiences = new AbsoluteUriCollection();
        private int? count;
 
        /// <summary>
        /// Initializes an instance of <see cref="Saml2ProxyRestriction"/>.
        /// </summary>
        public Saml2ProxyRestriction()
        {
        }
 
        /// <summary>
        /// Gets the set of audiences to whom the asserting party permits
        /// new assertions to be issued on the basis of this assertion.
        /// </summary>
        public Collection<Uri> Audiences
        {
            get { return this.audiences; }
        }
 
        /// <summary>
        /// Gets or sets the maximum number of indirections that the asserting party
        /// permits to exist between this assertion and an assertion which has 
        /// ultimately been issued on the basis of it.
        /// </summary>
        public int? Count
        {
            get
            { 
                return this.count; 
            }
 
            set
            {
                if (null != value)
                {
                    if (value.Value < 0)
                    {
                        throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", SR.GetString(SR.ID0002)));
                    }
                }
 
                this.count = value;
            }
        }
    }
}