Не все параметры запроса отображаются в возвращаемом URL - PullRequest
0 голосов
/ 05 марта 2020

Я создал приложение ASP. NET CORE MVC и использую аутентификацию cook ie. Ниже приведен мой код в файле Startup.cs.

services.AddAuthentication(options =>
{
    // these must be set other ASP.NET Core will throw exception that no
    // default authentication scheme or default challenge scheme is set.
    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
  .AddCookie(options =>
   {
       options.LoginPath = "/Account/Login/";
   });

Когда срок действия cook ie истекает, приложение перенаправляет на путь /Account/Login с URL-адресом возврата, содержащим текущий URL, в котором находился пользователь. Это работает штраф, пока текущий URL не имеет 0 или 1 параметров запроса. Если текущий URL имеет 2 параметра запроса, то на первый URL-адрес передается только первый параметр запроса. Метод входа в систему описан ниже.

public IActionResult Login(string returnUrl)
{
   return View(new LogInViewModel { ReturnUrl = returnUrl });
}

Например, если текущий URL равен /Inspection?inspectionID=1&processTypeID=2, тогда возвращаемый URL получает только /Inspection?inspectionID=1. Параметр processtypeID не приходит.

Но когда браузер перемещается по URL-адресу /Account/Login, когда срок действия повара ie истек, он показывает правильный URL /Account/Login?ReturnUrl=/Inspection?inspectionID=1&processTypeID=2

Может кто-нибудь указать мне, почему это происходит и как это исправить?

Спасибо, Zehan

...