在 ASP.NET 核心 2.2 MVC 和身份中设置登录路径
Setting login path within ASP.NET Core 2.2 MVC and Identity
项目详情:
- ASP.NET 核心 2.2 MVC
- 身份
我创建了一个自己的登录视图。实际上,如果我调用一个视图,我必须对其进行授权(通过 authorize 属性),它将自动重定向到登录视图。但目前它是“/Identity/Account/Login”。但是 我想要显示我自己的登录视图。我该怎么做?
我已经在 startup.cs 中尝试过:
services.AddDefaultIdentity<ApplicationUser>(config => { config.SignIn.RequireConfirmedEmail = true; })
.AddDefaultUI(UIFramework.Bootstrap4).AddEntityFrameworkStores<ApplicationDbContext>();
services.Configure<IdentityOptions>(options => { options.User.RequireUniqueEmail = true; });
services.ConfigureApplicationCookie(options =>
{
options.Cookie.Name = "auth_cookie";
options.AccessDeniedPath = "/Account/Login";
options.LoginPath = "/Account/Login";
options.LogoutPath = "/Account/LogOff";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
options.SlidingExpiration = true;
});
您可以尝试配置 CookieAuthenticationOptions
来达到您的要求。
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.PostConfigure<CookieAuthenticationOptions>(IdentityConstants.ApplicationScheme,
opt =>
{
//configure your other properties
opt.LoginPath = "/Login";
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
项目详情:
- ASP.NET 核心 2.2 MVC
- 身份
我创建了一个自己的登录视图。实际上,如果我调用一个视图,我必须对其进行授权(通过 authorize 属性),它将自动重定向到登录视图。但目前它是“/Identity/Account/Login”。但是 我想要显示我自己的登录视图。我该怎么做?
我已经在 startup.cs 中尝试过:
services.AddDefaultIdentity<ApplicationUser>(config => { config.SignIn.RequireConfirmedEmail = true; })
.AddDefaultUI(UIFramework.Bootstrap4).AddEntityFrameworkStores<ApplicationDbContext>();
services.Configure<IdentityOptions>(options => { options.User.RequireUniqueEmail = true; });
services.ConfigureApplicationCookie(options =>
{
options.Cookie.Name = "auth_cookie";
options.AccessDeniedPath = "/Account/Login";
options.LoginPath = "/Account/Login";
options.LogoutPath = "/Account/LogOff";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
options.SlidingExpiration = true;
});
您可以尝试配置 CookieAuthenticationOptions
来达到您的要求。
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.PostConfigure<CookieAuthenticationOptions>(IdentityConstants.ApplicationScheme,
opt =>
{
//configure your other properties
opt.LoginPath = "/Login";
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}