コード例 #1
0
    private async Task <AuthorizeRequestValidationResult> LoadClientAsync(ValidatedAuthorizeRequest request)
    {
        //////////////////////////////////////////////////////////
        // client_id must be present
        /////////////////////////////////////////////////////////
        var clientId = request.Raw.Get(OidcConstants.AuthorizeRequest.ClientId);

        if (clientId.IsMissingOrTooLong(_options.InputLengthRestrictions.ClientId))
        {
            LogError("client_id is missing or too long", request);
            return(Invalid(request, description: "Invalid client_id"));
        }

        request.ClientId = clientId;

        //////////////////////////////////////////////////////////
        // check for valid client
        //////////////////////////////////////////////////////////
        var client = await _clients.FindEnabledClientByIdAsync(request.ClientId);

        if (client == null)
        {
            LogError("Unknown client or not enabled", request.ClientId, request);
            return(Invalid(request, OidcConstants.AuthorizeErrors.UnauthorizedClient, "Unknown client or client not enabled"));
        }

        request.SetClient(client);

        return(Valid(request));
    }