2
我試圖處理一個場景,當我通過身份驗證的OpenID Connect服務器返回一組特定的querystrings。當條件匹配時,我希望將用戶重定向到「訪問被拒絕」頁面。無論出於何種原因,包含重定向的下面的註釋行實際上都不會觸發。有沒有更好的/不同的方式來做我以後的事情?在.NET核心OpenID Connect中間件中重定向?
這裏的ID連接中間件是如何在Startup.cs配置:
services.Configure<OpenIdConnectOptions>(options =>
{
// ...
options.Events = new OpenIdConnectEvents
{
OnMessageReceived = context =>
{
if (context.HttpContext.Request.Query.ContainsKey("error"))
{
context.HandleResponse(); // <-- Fires
context.Response.Redirect("/AccessDenied"); // <-- Redirect fires but user is not redirected
}
return Task.FromResult(0);
}
}
}
UPDATE:得到它具有以下調整工作:
options.Events = new OpenIdConnectEvents
{
OnRemoteFailure = context =>
{
context.HandleResponse();
context.Response.Redirect("AccessDenied?error=" + context.Failure.Message);
return Task.FromResult(0);
},
// ...
};
您是否嘗試過不調用'context.HandleResponse();'? – Brad
刪除context.HandleResponse()不起作用,並且在用戶轉到回調路徑uri之前用戶仍然沒有最終重定向。 – ianpoley