Как перенаправить клиентское приложение (вместо использования первоначально запрошенного URL) после успешного входа в систему? - PullRequest
2 голосов
/ 16 мая 2019

У меня есть основное приложение asp.net с аутентификацией OpenID Connect, все работает правильно.Дело в том, что я хочу перенаправить клиента после успешного входа в систему, а не использовать URL-адрес обратного вызова, который встроен в свойство state в строке запроса.Как мне сделать это от 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 Ответ

2 голосов
/ 16 мая 2019

Вам нужно что-то вроде:

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