C# Identity Server 4:抱歉,出现错误:未经授权的\u客户端

C# Identity Server 4:抱歉,出现错误:未经授权的\u客户端,c#,.net,umbraco,identityserver4,C#,.net,Umbraco,Identityserver4,我已将identity server 4设置为Umbraco,以便它使用自定义角色提供程序 一切正常,但现在当我被重定向到我的Identity server时,出现以下错误: 有人能解释一下这个错误吗?我曾尝试在源代码管理中回滚我的代码,但我所做的一切似乎都无济于事。我在哪里可以看到错误日志 谢谢, Scott我发现这是由于重定向URI不正确造成的 如果客户端出现任何问题,则会引发此错误 我尝试使用https而不是http来访问我的本地sitecore管理面板,如下所示 它工作了记住它唯一的h

我已将identity server 4设置为Umbraco,以便它使用自定义角色提供程序

一切正常,但现在当我被重定向到我的Identity server时,出现以下错误:

有人能解释一下这个错误吗?我曾尝试在源代码管理中回滚我的代码,但我所做的一切似乎都无济于事。我在哪里可以看到错误日志

谢谢,
Scott

我发现这是由于重定向URI不正确造成的


如果客户端出现任何问题,则会引发此错误

我尝试使用https而不是http来访问我的本地sitecore管理面板,如下所示


它工作了记住它唯一的https

原因可能是客户端的重定向uri不包括客户端应用程序正在发送的实际重定向uri。这是在
Client.cs
方法
GetClients
中配置的:

new Client
{
    ...
    RedirectUris = new[] { "https://..." }, 
    PostLogoutRedirectUris = new[] { "https://..." },
    AllowedCorsOrigins = new[] { "https://..." },
}
重定向URI必须与客户端发送的地址完全匹配,包括HTTP方案(HTTP,https)

这可以在日志文件中找到,该文件列出了允许的URI和失败授权请求的实际URI。Identity server正在
程序中使用serilog。cs
可以在
Main
方法中打开:

...

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
    .MinimumLevel.Override("System", LogEventLevel.Warning)
    .MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information)
    .Enrich.FromLogContext()
    .WriteTo.File("logs\\the-log-file-name.txt")
    .CreateLogger();

BuildWebHost(args).Run();

好。。。我们所能说的最好的情况是客户未经授权。查看数据库中的客户机并确保其有效。据我所知,客户机存储在Identity Server的代码中,我已经检查了这些值。无法看到任何问题,因为我已经几周没有接触此代码了。奇怪,那只是为了发展。。。检查承载identity server的应用程序。日志应该告诉你更多有用的信息我想我找到了,我将网站发布到azure查看日志,发现客户端id不正确(有点),我在配置中有它,但它不是发送的值,所以我将它更改为新值,它开始工作。ID在本地是否有txt日志文件?我可以;我似乎找不到任何关于它的信息。谢谢检查Identity Server写入的错误日志。日志文件将包含关于哪个值不正确的更多详细信息,例如客户端id、密码、重定向url等。请进一步解释,IdentityModel在我的重定向URI后面附加了“/signin oidc”。在我更新IdentityServer客户端配置以反映这一点之后,它就开始工作了。