如何在 OnTicketReceived 期间重定向

How to redirect during OnTicketReceived

在我们的 OIDC 流程中我有这个方法...

    options.Events.OnTicketReceived = async context =>
    {
      ...
        (bool doRedirect, string destUrl) = redirectHelper.ProcessRedirectionRules(user);
        if (doRedirect)
        {
          context.Response.Redirect(destUrl);
          return;
        }
      
      ...
    };

不幸的是,虽然我确实需要将用户重定向到目的地 URL,但 context.Response.Redirect(destUrl); 根本不执行重定向。

我是否试图重定向到错误的位置或以错误的方式?应该怎么做?

我想你错过了这个:

if (doRedirect)
{
  context.Response.Redirect(destUrl);
  context.HandleResponse();
  return;
}

总结: 停止对此请求的所有处理,并 return 到客户端。调用者负责生成完整响应。