//----------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------- namespace System.IdentityModel.Tokens { using System; using System.Collections.ObjectModel; /// /// Represents the Subject element specified in [Saml2Core, 2.4.1]. /// /// /// If the NameId is null and the SubjectConfirmations collection is empty, /// an InvalidOperationException will be thrown during serialization. /// public class Saml2Subject { private Saml2NameIdentifier nameId; private Collection subjectConfirmations = new Collection(); /// /// Initialize an instance of . /// public Saml2Subject() { } /// /// Initializes an instance of from a . /// /// The to use for initialization. public Saml2Subject(Saml2NameIdentifier nameId) { this.nameId = nameId; } /// /// Initializes an instance of from a . /// /// The to use for initialization. public Saml2Subject(Saml2SubjectConfirmation subjectConfirmation) { if (null == subjectConfirmation) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("subjectConfirmation"); } this.subjectConfirmations.Add(subjectConfirmation); } /// /// Gets or sets the . [Saml2Core, 2.4.1] /// public Saml2NameIdentifier NameId { get { return this.nameId; } set { this.nameId = value; } } /// /// Gets a collection of which can be used to validate and confirm the . [Saml2Core, 2.4.1] /// /// /// If more than one subject confirmation is provied, then satisfying any one of /// them is sufficient to confirm the subject for the purpose of applying the /// assertion. /// public Collection SubjectConfirmations { get { return this.subjectConfirmations; } } } }