/// <summary> /// Retrieves the token type associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation, /// whose result returns the token type associated with the specified token. /// </returns> public virtual Task <string> GetTokenTypeAsync(OpenIdToken token, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } return(Task.FromResult(token.Type)); }
/// <summary> /// Retrieves the additional properties associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation, whose /// result returns all the additional properties associated with the token. /// </returns> public virtual Task <JObject> GetPropertiesAsync(OpenIdToken token, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } return(Task.FromResult(token.Properties ?? new JObject())); }
/// <summary> /// Retrieves the physical identifier associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation, /// whose result returns the physical identifier associated with the token. /// </returns> public virtual Task <string> GetPhysicalIdAsync(OpenIdToken token, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } return(Task.FromResult(token.Id.ToString(CultureInfo.InvariantCulture))); }
/// <summary> /// Retrieves the expiration date associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation, /// whose result returns the expiration date associated with the specified token. /// </returns> public virtual Task <DateTimeOffset?> GetExpirationDateAsync(OpenIdToken token, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } return(Task.FromResult(token.ExpirationDate)); }
/// <summary> /// Sets the reference identifier associated with a token. /// Note: depending on the manager used to create the token, /// the reference identifier may be hashed for security reasons. /// </summary> /// <param name="token">The token.</param> /// <param name="identifier">The reference identifier associated with the token.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation. /// </returns> public virtual Task SetReferenceIdAsync(OpenIdToken token, string identifier, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } token.ReferenceId = identifier; return(Task.CompletedTask); }
/// <summary> /// Sets the additional properties associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="properties">The additional properties associated with the token </param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation. /// </returns> public virtual Task SetPropertiesAsync(OpenIdToken token, JObject properties, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } token.Properties = properties; return(Task.CompletedTask); }
/// <summary> /// Sets the payload associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="payload">The payload associated with the token.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation. /// </returns> public virtual Task SetPayloadAsync(OpenIdToken token, string payload, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } token.Payload = payload; return(Task.CompletedTask); }
/// <summary> /// Sets the expiration date associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="date">The expiration date.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation. /// </returns> public virtual Task SetExpirationDateAsync(OpenIdToken token, DateTimeOffset?date, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } token.ExpirationDate = date?.UtcDateTime; return(Task.CompletedTask); }
/// <summary> /// Creates a new token. /// </summary> /// <param name="token">The token to create.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation. /// </returns> public virtual Task CreateAsync(OpenIdToken token, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } cancellationToken.ThrowIfCancellationRequested(); _session.Save(token); return(_session.CommitAsync()); }
/// <summary> /// Sets the token type associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="type">The token type associated with the token.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation. /// </returns> public virtual Task SetTokenTypeAsync(OpenIdToken token, string type, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } if (string.IsNullOrEmpty(type)) { throw new ArgumentException("The token type cannot be null or empty.", nameof(type)); } token.Type = type; return(Task.CompletedTask); }
/// <summary> /// Sets the subject associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="subject">The subject associated with the token.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation. /// </returns> public virtual Task SetSubjectAsync(OpenIdToken token, string subject, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } if (string.IsNullOrEmpty(subject)) { throw new ArgumentException("The subject cannot be null or empty.", nameof(subject)); } token.Subject = subject; return(Task.CompletedTask); }
/// <summary> /// Sets the status associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="status">The status associated with the authorization.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation. /// </returns> public virtual Task SetStatusAsync(OpenIdToken token, string status, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } if (string.IsNullOrEmpty(status)) { throw new ArgumentException("The status cannot be null or empty.", nameof(status)); } token.Status = status; return(Task.CompletedTask); }
/// <summary> /// Sets the authorization identifier associated with a token. /// </summary> /// <param name="token">The token.</param> /// <param name="identifier">The unique identifier associated with the token.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> that can be used to abort the operation.</param> /// <returns> /// A <see cref="Task"/> that can be used to monitor the asynchronous operation. /// </returns> public virtual Task SetAuthorizationIdAsync(OpenIdToken token, string identifier, CancellationToken cancellationToken) { if (token == null) { throw new ArgumentNullException(nameof(token)); } if (string.IsNullOrEmpty(identifier)) { token.AuthorizationId = null; } else { token.AuthorizationId = identifier; } return(Task.CompletedTask); }