e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
110 lines
4.1 KiB
C#
110 lines
4.1 KiB
C#
//-----------------------------------------------------------------------
|
|
// <copyright file="Saml2AuthenticationStatement.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//-----------------------------------------------------------------------
|
|
|
|
namespace System.IdentityModel.Tokens
|
|
{
|
|
using System;
|
|
|
|
/// <summary>
|
|
/// Represents the AuthnStatement element specified in [Saml2Core, 2.7.2].
|
|
/// </summary>
|
|
public class Saml2AuthenticationStatement : Saml2Statement
|
|
{
|
|
private Saml2AuthenticationContext authnContext;
|
|
private DateTime authnInstant;
|
|
private string sessionIndex;
|
|
private DateTime? sessionNotOnOrAfter;
|
|
private Saml2SubjectLocality subjectLocality;
|
|
|
|
/// <summary>
|
|
/// Creates a Saml2AuthenticationStatement.
|
|
/// </summary>
|
|
/// <param name="authenticationContext">The authentication context of this statement.</param>
|
|
public Saml2AuthenticationStatement(Saml2AuthenticationContext authenticationContext)
|
|
: this(authenticationContext, DateTime.UtcNow)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates an instance of Saml2AuthenticationContext.
|
|
/// </summary>
|
|
/// <param name="authenticationContext">The authentication context of this statement.</param>
|
|
/// <param name="authenticationInstant">The time of the authentication.</param>
|
|
public Saml2AuthenticationStatement(Saml2AuthenticationContext authenticationContext, DateTime authenticationInstant)
|
|
{
|
|
if (null == authenticationContext)
|
|
{
|
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("authenticationContext");
|
|
}
|
|
|
|
this.authnContext = authenticationContext;
|
|
this.authnInstant = DateTimeUtil.ToUniversalTime(authenticationInstant);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the <see cref="Saml2AuthenticationContext"/> used by the authenticating authority up to and including
|
|
/// the authentication event that yielded this statement. [Saml2Core, 2.7.2]
|
|
/// </summary>
|
|
public Saml2AuthenticationContext AuthenticationContext
|
|
{
|
|
get
|
|
{
|
|
return this.authnContext;
|
|
}
|
|
|
|
set
|
|
{
|
|
if (null == value)
|
|
{
|
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value");
|
|
}
|
|
|
|
this.authnContext = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the time at which the authentication took place. [Saml2Core, 2.7.2]
|
|
/// </summary>
|
|
public DateTime AuthenticationInstant
|
|
{
|
|
get { return this.authnInstant; }
|
|
set { this.authnInstant = DateTimeUtil.ToUniversalTime(value); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the index of a particular session between the principal
|
|
/// identified by the subject and the authenticating authority. [Saml2Core, 2.7.2]
|
|
/// </summary>
|
|
public string SessionIndex
|
|
{
|
|
get { return this.sessionIndex; }
|
|
set { this.sessionIndex = XmlUtil.NormalizeEmptyString(value); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the time instant at which the session between the principal
|
|
/// identified by the subject and the SAML authority issuing this statement
|
|
/// must be considered ended. [Saml2Core, 2.7.2]
|
|
/// </summary>
|
|
public DateTime? SessionNotOnOrAfter
|
|
{
|
|
get { return this.sessionNotOnOrAfter; }
|
|
set { this.sessionNotOnOrAfter = DateTimeUtil.ToUniversalTime(value); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the <see cref="Saml2SubjectLocality"/> which contains the DNS domain name and IP address for the system from which
|
|
/// the assertion subject was authenticated. [Saml2Core, 2.7.2]
|
|
/// </summary>
|
|
public Saml2SubjectLocality SubjectLocality
|
|
{
|
|
get { return this.subjectLocality; }
|
|
set { this.subjectLocality = value; }
|
|
}
|
|
}
|
|
}
|