从 .NET 4.5 访问 IdentityServer4 Introspection

Accessing IdentityServer4 Introspection from .NET 4.5

我正在尝试从较旧的客户端应用程序访问 Id4 服务器。我能够很好地获得令牌,但是当我尝试验证令牌时,我在调用 client.SendAsync 时收到 415 - 'Unsupported Media Type' 错误。关于我缺少什么设置的任何想法?这些值在 Postman 中有效。

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;

    }

尝试添加值为“application/x-www-form-urlencoded”或“multipart/form-data”的“Content-Type”header,我相信这应该可以解决您的问题。

这是因为内省端点returns当请求没有表单内容类型时不支持的媒体类型响应代码:https://github.com/IdentityServer/IdentityServer4/blob/63a50d7838af25896fbf836ea4e4f37b5e179cd8/src/Endpoints/IntrospectionEndpoint.cs