Я создал приложение 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