コード例 #1
0
        /// <summary>
        /// Creates a logout URL.
        /// </summary>
        /// <param name="request">The logout request.</param>
        /// /// <param name="cancellationToken">A token that can be used to cancel the request</param>
        /// <returns></returns>
        public virtual async Task <string> PrepareLogoutAsync(LogoutRequest request = default, CancellationToken cancellationToken = default)
        {
            await EnsureConfigurationAsync(cancellationToken);

            var endpoint = Options.ProviderInformation.EndSessionEndpoint;

            if (endpoint.IsMissing())
            {
                throw new InvalidOperationException("Discovery document has no end session endpoint");
            }

            return(_authorizeClient.CreateEndSessionUrl(endpoint, request));
        }
コード例 #2
0
        /// <summary>
        /// Creates a logout URL.
        /// </summary>
        /// <param name="request">The logout request.</param>
        /// <returns></returns>
        public virtual async Task<string> PrepareLogoutAsync(LogoutRequest request = null)
        {
            if (request == null) request = new LogoutRequest();
            await EnsureConfigurationAsync();

            var endpoint = _options.ProviderInformation.EndSessionEndpoint;
            if (endpoint.IsMissing())
            {
                throw new InvalidOperationException("Discovery document has no end session endpoint");
            }

            return _authorizeClient.CreateEndSessionUrl(endpoint, request);
        }