URL-адрес входа в систему с идентификатором ядра ASP.NET
Я использую ASP.NET Core 2.1, и я использовал строительные леса, чтобы добавить Identity, который работает нормально. Кроме того, когда я пытаюсь перейти на страницу, требующую входа в систему, она меня принимает: /Identity/Account/Login?ReturnUrl
Как изменить его, чтобы перейти к простому /Account/Login, который является моей собственной страницей регистрации, которую я создал.
Я попробовал это:
services.ConfigureApplicationCookie(options =>
{
options.AccessDeniedPath = "/Account/AccessDenied";
options.Cookie.Name = "Cookie";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(720);
options.LoginPath = "/Account/Login";
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
options.SlidingExpiration = true;
});
но он по-прежнему относится к /Identity/
Ответы
Ответ 1
Проверьте, как вы регистрируете службу удостоверения, если у вас есть:
services.AddDefaultIdentity<IdentityUser>(options => { }).AddEntityFrameworkStores<ApplicationDbContext>();
замените его
services.AddIdentity<IdentityUser, IdentityRole>(options => { }).AddEntityFrameworkStores<ApplicationDbContext>();
и сохраните свой код в ConfigureApplicationCookie
который работал в моем случае.
Ответ 2
Я просто столкнулся с этой проблемой. Я решил это, переместив
services.ConfigureApplicationCookie
вызывать после моих services.AddIdentity
call в ConfigureServices
Ответ 3
Попробуйте добавить new PathString("...")
и установить маршрут в контроллере.
services.ConfigureApplicationCookie(options =>
{
options.AccessDeniedPath = new PathString("/Account/AccessDenied");
options.Cookie.Name = "Cookie";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(720);
options.LoginPath = new PathString("/Account/Login");
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
options.SlidingExpiration = true;
});
[AllowAnonymous]
[Route("Account")]
public class SecurityController : Controller
{
[Route("Login/{returnUrl?}")]
public IActionResult Login(string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
return View();
}
}
Ответ 4
Переместить services.ConfigureApplicationCookie после services.AddIdentity и, самое главное, удалить AddDefaultUI в службах. Ссылка здесь
Ответ 5
services.ConfigureApplicationCookie(options =>
{
options.Events = new CookieAuthenticationEvents
{
OnRedirectToLogin = x =>
{
x.Response.Redirect("Account/Login");
return Task.CompletedTask;
}
};
});