C# Identity Server 4未向控制器返回错误说明
我有一个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
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);
}