首页 > 解决方案 > 成功登录后如何重定向客户端应用程序(而不是使用最初请求的 url)?

问题描述

我有一个带有 OpenID Connect 身份验证的 asp.net 核心应用程序,一切正常。问题是,我想在成功登录后重定向客户端,而不是使用嵌入在state查询字符串中的属性中的回调 url。我该怎么做Client/Startup.cs

在下面的代码示例中,假设用户已添加书签或输入/home/Second,并且在成功登录后,我希望始终重定向到/home/Index。我该怎么做呢?

    [Authorize]
    public class HomeController : Controller 
    { 
         public async Task<IActionResult> Index()
         {
            return View(); 
         }

         public async Task<IActionResult> Second()
         {
            return View(); 
         }
    }

标签: asp.net-coreidentityserver4openid-connect

解决方案


你需要类似的东西:

services.AddAuthentication().AddOpenIdConnect(options =>
            {
                options.Events = new OpenIdConnectEvents
                {
                    OnTicketReceived = ctx =>
                    {
                        // can be First, Second, Index, whatever
                        ctx.ReturnUri = "http://google.com"; 
                        return Task.CompletedTask;
                    }
                }
            }

推荐阅读