SecurityToken.ValidTo Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает последний момент времени, когда данный маркер безопасности является действительным.
public:
abstract property DateTime ValidTo { DateTime get(); };
public abstract DateTime ValidTo { get; }
member this.ValidTo : DateTime
Public MustOverride ReadOnly Property ValidTo As DateTime
Значение свойства
Значение DateTime, соответствующее последнему моменту времени, когда данный маркер безопасности является действительным.
Примеры
Примеры кода, используемые в разделах SecurityToken , взяты из Custom Token
примера. В этом примере представлены пользовательские классы, обеспечивающие обработку простых веб-маркеров (SWT). Он включает в себя реализацию SimpleWebToken
класса и SimpleWebTokenHandler
класса , а также другие классы, поддерживающие токены SWT. Сведения об этом и других примерах, доступных для WIF, и о том, где их можно скачать, см. в разделе WiF Code Sample Index. В следующем коде показано переопределение ValidTo свойства .
/// <summary>
/// Defines the set of constants for the Simple Web Token.
/// </summary>
public static class SimpleWebTokenConstants
{
public const string Audience = "Audience";
public const string ExpiresOn = "ExpiresOn";
public const string Id = "Id";
public const string Issuer = "Issuer";
public const string Signature = "HMACSHA256";
public const string ValidFrom = "ValidFrom";
public const string ValueTypeUri = "http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0";
}
public static DateTime SwtBaseTime = new DateTime( 1970, 1, 1, 0, 0, 0, 0 ); // per SWT psec
NameValueCollection _properties;
/// <summary>
/// Gets the time when the token expires.
/// </summary>
/// <value>The time up to which the token is valid.</value>
public override DateTime ValidTo
{
get
{
string expiryTime = _properties[SimpleWebTokenConstants.ExpiresOn];
return GetTimeAsDateTime( String.IsNullOrEmpty( expiryTime ) ? "0" : expiryTime );
}
}
/// <summary>
/// Converts the time in seconds to a <see cref="DateTime"/> object based on the base time
/// defined by the Simple Web Token.
/// </summary>
/// <param name="expiryTime">The time in seconds.</param>
/// <returns>The time as a <see cref="DateTime"/> object.</returns>
protected virtual DateTime GetTimeAsDateTime( string expiryTime )
{
long totalSeconds = 0;
if ( !long.TryParse( expiryTime, out totalSeconds ) )
{
throw new SecurityTokenException("Invalid expiry time. Expected the time to be in seconds passed from 1 January 1970.");
}
long maxSeconds = (long)( DateTime.MaxValue - SwtBaseTime ).TotalSeconds - 1;
if ( totalSeconds > maxSeconds )
{
totalSeconds = maxSeconds;
}
return SwtBaseTime.AddSeconds( totalSeconds );
}
Комментарии
Используйте свойства ValidFrom и ValidTo для определения периода времени, в течение которого действителен маркер SecurityToken. Свойства ValidFrom и ValidTo представляют соответственно первый и последний моменты времени, когда данный маркер безопасности является действительным.
Примечания для тех, кто реализует этот метод
Необходимо переопределить ValidTo свойство .