成功登录后如何重定向客户端应用程序(而不是使用最初请求的URL)?

时间:2019-05-16 03:53:16

标签: asp.net-core identityserver4 openid-connect

我有一个带有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(); 
         }
    }

1 个答案:

答案 0 :(得分:2)

您需要以下内容:

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