Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Identity Server 4未向控制器返回错误说明_C#_Asp.net Core_.net Core_Identityserver4 - Fatal编程技术网

C# Identity Server 4未向控制器返回错误说明

C# Identity Server 4未向控制器返回错误说明,c#,asp.net-core,.net-core,identityserver4,C#,Asp.net Core,.net Core,Identityserver4,我有一个Identity server 4项目,它遵循有关如何显示错误的文档 主控台: public class HomeController : Controller { private readonly IIdentityServerInteractionService _interaction; public HomeController(IIdentityServerInteractionService interaction) { _inter

我有一个Identity server 4项目,它遵循有关如何显示错误的文档

主控台:

public class HomeController : Controller
{
    private readonly IIdentityServerInteractionService _interaction;

    public HomeController(IIdentityServerInteractionService interaction)
    {
        _interaction = interaction;
    }

    public IActionResult Index()
    {
        return View();
    }

    public async Task<IActionResult> Error(string errorId)
    {
        var vm = new ErrorViewModel();
        var message = await _interaction.GetErrorContextAsync(errorId);
        if (message != null)
            vm.Error = message;
        return View("Error", vm);
    }
}

但是,
GetErrorContextAsync
不会将唯一的信息返回给我的控制器,因此只能向用户显示错误名称

错误的描述根本没有填写

我如何得到最起码的描述

我正在寻找一种方式来显示一些合理的信息给开发者在这里。但是,每个错误都会返回未经授权的客户端,因此我不能告诉开发人员重定向URI与无效客户端id之间存在问题

if (vm.Error.Error == "unauthorized_client") vm.Error.ErrorDescription = "Contact plugin developer.";

注意:重定向URI one看起来确实返回了描述。

这是设计意图。您无法访问控制器中的
未配置\u客户端的原因

您还可以检查源代码以了解发生了什么

//////////////////////////////////////////////////////////
// check for valid client
//////////////////////////////////////////////////////////
var client = await _clients.FindEnabledClientByIdAsync(request.ClientId);
if (client == null)
{
    LogError("Unknown client or not enabled", request.ClientId, request);
    return Invalid(request, OidcConstants.AuthorizeErrors.UnauthorizedClient);
}

eah?为什么我不能访问原因?为什么我不能告诉开发人员他们发送的重定向uri不好。目前我有开发人员联系我检查他们的日志,这是浪费我的时间。我不知道确切的情况。也许是出于安全考虑。你认为我们应该把它拖到问题论坛上吗?我可以理解一些未向用户显示的消息,但我应该能够将其覆盖一点,使其达到我认为可以接受的程度。我认为它们不会更改任何内容,因为这是IdentityServer的工作方式,因为以前的版本并不意味着它无法更改。它们已经修复了我发送给它们的一个问题。
if (vm.Error.Error == "unauthorized_client") vm.Error.ErrorDescription = "Contact plugin developer.";
//////////////////////////////////////////////////////////
// check for valid client
//////////////////////////////////////////////////////////
var client = await _clients.FindEnabledClientByIdAsync(request.ClientId);
if (client == null)
{
    LogError("Unknown client or not enabled", request.ClientId, request);
    return Invalid(request, OidcConstants.AuthorizeErrors.UnauthorizedClient);
}