Доступ к IdentityServer4 Introspection из .NET 4.5 - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь получить доступ к серверу Id4 из более старого клиентского приложения. Я могу получить токен нормально, но когда я пытаюсь проверить токен, я получаю ошибку 415 - 'Unsupported Media Type' при вызове client.SendAsync. Любые идеи о том, что настройки мне не хватает? Эти ценности работают в Почтальоне.

public bool IsTokenValid(string token)
    {
        bool isTokenValid = false;

        HttpClient client = new HttpClient();

        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));            
        client.DefaultRequestHeaders.Add("Authorization", "Basic UHJvZml0U2FnZUFwaTpnR2VTZ0luRW9r");

        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, _url + "/connect/introspect");
        request.Content = new StringContent("token=" + token);

        try
        {
            HttpResponseMessage response = client.SendAsync(request).Result; 
        }
        catch (Exception ex)
        {               
            Error = ex;
        }

        client.Dispose();

        return isTokenValid;

    }

1 Ответ

0 голосов
/ 26 января 2019

Попробуйте добавить заголовок «Content-Type» со значением «application / x-www-form-urlencoded» или «multipart / form-data», и я считаю, что это должно решить вашу проблему.

Это связано с тем, что конечная точка самоанализа возвращает неподдерживаемый код ответа типа носителя, когда у запроса нет типа содержимого формы: https://github.com/IdentityServer/IdentityServer4/blob/63a50d7838af25896fbf836ea4e4f37b5e179cd8/src/Endpoints/IntrospectionEndpoint.cs

...