77 lines
2.9 KiB
C#
77 lines
2.9 KiB
C#
|
//-----------------------------------------------------------------------
|
||
|
// <copyright file="Saml2Subject.cs" company="Microsoft">
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
// </copyright>
|
||
|
//-----------------------------------------------------------------------
|
||
|
|
||
|
namespace System.IdentityModel.Tokens
|
||
|
{
|
||
|
using System;
|
||
|
using System.Collections.ObjectModel;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Represents the Subject element specified in [Saml2Core, 2.4.1].
|
||
|
/// </summary>
|
||
|
/// <remarks>
|
||
|
/// If the NameId is null and the SubjectConfirmations collection is empty,
|
||
|
/// an InvalidOperationException will be thrown during serialization.
|
||
|
/// </remarks>
|
||
|
public class Saml2Subject
|
||
|
{
|
||
|
private Saml2NameIdentifier nameId;
|
||
|
private Collection<Saml2SubjectConfirmation> subjectConfirmations = new Collection<Saml2SubjectConfirmation>();
|
||
|
|
||
|
/// <summary>
|
||
|
/// Initialize an instance of <see cref="Saml2Subject"/>.
|
||
|
/// </summary>
|
||
|
public Saml2Subject()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Initializes an instance of <see cref="Saml2Subject"/> from a <see cref="Saml2NameIdentifier"/>.
|
||
|
/// </summary>
|
||
|
/// <param name="nameId">The <see cref="Saml2NameIdentifier"/> to use for initialization.</param>
|
||
|
public Saml2Subject(Saml2NameIdentifier nameId)
|
||
|
{
|
||
|
this.nameId = nameId;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Initializes an instance of <see cref="Saml2Subject"/> from a <see cref="Saml2SubjectConfirmation"/>.
|
||
|
/// </summary>
|
||
|
/// <param name="subjectConfirmation">The <see cref="Saml2SubjectConfirmation"/> to use for initialization.</param>
|
||
|
public Saml2Subject(Saml2SubjectConfirmation subjectConfirmation)
|
||
|
{
|
||
|
if (null == subjectConfirmation)
|
||
|
{
|
||
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("subjectConfirmation");
|
||
|
}
|
||
|
|
||
|
this.subjectConfirmations.Add(subjectConfirmation);
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets or sets the <see cref="Saml2NameIdentifier"/>. [Saml2Core, 2.4.1]
|
||
|
/// </summary>
|
||
|
public Saml2NameIdentifier NameId
|
||
|
{
|
||
|
get { return this.nameId; }
|
||
|
set { this.nameId = value; }
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets a collection of <see cref="Saml2SubjectConfirmation"/> which can be used to validate and confirm the <see cref="Saml2Subject"/>. [Saml2Core, 2.4.1]
|
||
|
/// </summary>
|
||
|
/// <remarks>
|
||
|
/// 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.
|
||
|
/// </remarks>
|
||
|
public Collection<Saml2SubjectConfirmation> SubjectConfirmations
|
||
|
{
|
||
|
get { return this.subjectConfirmations; }
|
||
|
}
|
||
|
}
|
||
|
}
|