首页 > 解决方案 > 如何在 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);根本不执行重定向。

我是否试图在错误的地方或以错误的方式重定向?这应该怎么做?

标签: c#openid-connectasp.net-core-2.1asp.net-core-middleware

解决方案


我认为你错过了这个:

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

摘要:停止对该请求的所有处理并返回给客户端。调用者负责生成完整的响应。


推荐阅读