在ASP.NET Core中,身份验证不会自动重定向到正确的登录页面,需要手动配置身份验证中间件以指定登录页面。以下是一种解决方法:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/Account/Login"; // 设置登录页面的路径
});
// ...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication(); // 添加身份验证中间件
app.UseAuthorization();
// ...
}
在上面的代码中,我们将登录页面的路径设置为/Account/Login,你需要根据你的项目结构和登录页面的路径进行相应的修改。
这样配置之后,当用户未经身份验证的访问需要身份验证的页面时,系统会自动重定向到指定的登录页面。