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