Я создал приложение ASP.NET CORE MVC и использую аутентификацию с помощью файлов cookie. Ниже мой код в файле 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/";
});
Когда срок действия файла cookie истекает, приложение перенаправляется на путь /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
, когда срок действия файла cookie истек, он показывает правильный URL-адрес /Account/Login?ReturnUrl=/Inspection?inspectionID=1&processTypeID=2
Может ли кто-нибудь указать мне, почему это происходит и как это исправить?
Спасибо, Зехан