我在每个版本的.NET核心中都做了不同的操作,但是现在在2.2中我无法正确重定向。
这是我在 startup.cs 上使用的内容:
(这是一个默认的新项目)
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.AddRazorPagesOptions(options =>
{
options.AllowAreas = true;
options.Conventions.AuthorizeAreaFolder("Identity", "/Account/Manage");
options.Conventions.AuthorizeAreaPage("Identity", "/Account/Logout");
});
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = $"/Identity/Account/Login";
options.LogoutPath = $"/Identity/Account/Logout";
options.AccessDeniedPath = $"/Identity/Account/AccessDenied";
});
更改登录路径或注销路径当前什么都不做。这里有任何建议我可能缺少什么?
好吧!确定问题。如果您将.AddDefaultUI()
与身份服务注册一起使用,则覆盖默认的options.LoginPath
将不起作用。因此,要使用您的自定义登录路径进行未经授权的用户重定向,请注释.AddDefaultUI()
如下:
services.AddIdentity<ApplicationUser, IdentityRole>()
//.AddDefaultUI(UIFramework.Bootstrap4) <-- you have to comment out this
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
现在应该起作用。这是GitHub问题