首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >GetDiscoveryDocumentAsync:“提供了无效的请求URI。请求URI必须是绝对URI,或者必须设置BaseAddress。”

GetDiscoveryDocumentAsync:“提供了无效的请求URI。请求URI必须是绝对URI,或者必须设置BaseAddress。”
EN

Stack Overflow用户
提问于 2021-07-23 10:52:01
回答 1查看 561关注 0票数 2

我已经核对了大部分的问题,但没有找到答案。

我正在尝试从身份服务器获取一个JWT令牌。

下面是操作步骤:

代码语言:javascript
复制
  var discoveryDocument = new DiscoveryDocumentRequest
            {
                Address = "https://admin.blabla.app:5000/",
                Policy =
                {
                    RequireHttps = false
                }
            };

  var auth = httpClient.GetDiscoveryDocumentAsync(discoveryDocument).Result;

我得到的错误是An invalid request URI was provided. The request URI must either be an absolute URI or BaseAddress must be set.

DiscoveryDocumentRequest

代码语言:javascript
复制
{
    "Policy": {
        "LoopbackAddresses": [
            "localhost",
            "127.0.0.1"
        ],
        "Authority": "https://admin.blabla.app:5000",
        "AuthorityValidationStrategy": {},
        "RequireHttps": false,
        "AllowHttpOnLoopback": true,
        "ValidateIssuerName": true,
        "ValidateEndpoints": true,
        "EndpointValidationExcludeList": [],
        "AdditionalEndpointBaseAddresses": [],
        "RequireKeySet": true
    },
    "Address": "https://admin.blabla.app:5000/",
    "ClientId": null,
    "ClientSecret": null,
    "ClientAssertion": {
        "Type": null,
        "Value": null
    },
    "ClientCredentialStyle": 1,
    "AuthorizationHeaderStyle": 0,
    "Parameters": [],
    "Version": {
        "Major": 1,
        "Minor": 1,
        "Build": -1,
        "Revision": -1,
        "MajorRevision": -1,
        "MinorRevision": -1
    },
    "Content": null,
    "Method": {
        "Method": "GET"
    },
    "RequestUri": null,
    "Headers": [
        {
            "Key": "Accept",
            "Value": [
                "application/json"
            ]
        }
    ],
    "Properties": {}
}

此代码位于windows服务上。

有趣的事实:相同的代码在不同的windows机器上工作。为什么?有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-31 18:49:19

请参阅此示例,并请写:

代码语言:javascript
复制
 var client = new HttpClient();

            var disco = await client.GetDiscoveryDocumentAsync("https://admin.blabla.app:5000/");
            if (disco.IsError)
            {
                Console.WriteLine(disco.Error);
                return;
            }

请检查您的URL https://admin.blabla.app:5000/,您的错误与您的URL相关,您可以通过https://demo.identityserver.io/测试您的代码

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68498046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档