如果用户已记录但没有相应的角色,我需要重定向到登录页面。在.NET Core 1.1.2中很容易通过[oterizeatTribute]
实现这一点 [Authorize(Roles="Manager")]
如果我使用ASP.NET Core Identity 2.0.1引导.NET Core 2.0 Web应用程序,则将其重定向到/account/acceptDenied而不是登录。
这是来自startup.cs:
services.AddIdentity<ApplicationUser, IdentityRole>(
options => {
options.Password.RequireDigit = false;
options.Password.RequiredLength = 4;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
options.Password.RequireLowercase = false;
}
)
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
和
app.UseAuthentication();
由此代码解决:
services.ConfigureApplicationCookie(options =>
{
options.AccessDeniedPath = "/Account/Login";
});