客户端程序无法在“快速入门”基本程序中调用IdentityServer

时间:2020-07-13 20:09:29

标签: identityserver4

我打算在我们的B2C站点中使用Identity Server 4,并开始学习Identity Server。首先,我从您的github页面下载了示例快速入门源代码。(https://github.com/IdentityServer/IdentityServer4/tree/main/samples/Quickstarts

在我开始调试“ 1_ClientCredentials”程序后不久出现了问题,我无法提出解决方案。

失败发生在“客户端”项目的Program类的Main方法中。

namespace Client
{
    public class Program
    {
        private static async Task Main()
        {
            // discover endpoints from metadata
            var client = new HttpClient();

            var disco = await client.GetDiscoveryDocumentAsync("https://localhost:5001"); **//<=Here!!**
            if (disco.IsError)
            {
                Console.WriteLine(disco.Error);
                return;
            }
        ・・・・

该方法的返回值的'IsError'属性始终为true,因此客户端程序无法从此开始。

URL'https:// localhost:5001'是有效的,因为我确认了URL'https:// localhost:5001 / .well-known / openid-configuration'在浏览器上显示了正确的json输出。 / p>


我想知道的是如何让HttpClient实例接收文档请求的响应。

为便于参考,我将有问题的程序放在下面的GitHub存储库中。 https://github.com/TrailRunner-MF/Samples/tree/master/QS1_ClientCredentials

解决方案名称与原始名称略有不同,但是操作完全相同,尤其是当它停在我提到的位置时

解决方案名称与原始名称略有不同,但是程序代码相同,只是浏览器上的“ IdentityServer”项目输出字母为“

”。

我希望有人可以下载它们,构建它们,通过将“ Client”项目设置为启动项目来开始调试,并确认是否出现问题。并向我展示该问题的解决方案。

谢谢。

1 个答案:

答案 0 :(得分:0)

该问题已通过简单的方式解决。 我必须将解决方案设置为“多启动项目”。

(我原以为IdentityServer和Api将被解决方案内部项目之间的依赖关系自动踢开。但这是错误的。)

完成的方式如下。

  1. 在解决方案的上下文菜单中选择“属性”。
  2. 在“属性页”对话框中选择“多个启动项目”。
  3. 为每个项目将“操作”设置为“开始”。

enter image description here

然后,我可以通过单击“开始调试”按钮进行调试,如下所示。

谢谢。

enter image description here