ASP.NET 核心身份更改登录 URL



我正在使用 ASP.NET Core 2.1,我使用脚手架添加身份,工作正常 除了当我尝试转到需要登录的页面时,它会带我:/Identity/Account/Login?ReturnUrl

如何将其更改为仅转到/帐户/登录,这是我自己创建的登录页面。

我试过这个:

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;
});

但它仍然转到/标识/

我刚刚遇到了同样的问题。 我通过移动我的

services.ConfigureApplicationCookie在我services.AddIdentity电话后打电话给ConfigureServices

尝试在控制器中添加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();
}
}

如果您有以下情况,请检查如何注册标识服务:

services.AddDefaultIdentity<IdentityUser>(options => { }) .AddEntityFrameworkStores<ApplicationDbContext>();

将其替换为

services.AddIdentity<IdentityUser, IdentityRole>(options => { }) .AddEntityFrameworkStores<ApplicationDbContext>(); 并将您的代码保存在适用于我的情况下的ConfigureApplicationCookie中。

移动服务。在服务后配置应用程序cookie。AddIdentity 和最重要的删除服务中的 AddDefaultUI。参考这里

services.ConfigureApplicationCookie(options =>
{
options.Events = new CookieAuthenticationEvents
{
OnRedirectToLogin = x =>
{
x.Response.Redirect("Account/Login");
return Task.CompletedTask;
}
};
});

相关内容

  • 没有找到相关文章

最新更新