如何更改 .Net Core 中的拒绝访问路由
How to Change Access Denied Route in .Net core
我在角色和路线方面遇到问题
我有一个帐户控制器,我在我的一个控制器中使用 Asp Identity。它需要特定的角色才能访问它。问题是,我希望它将 Unauthorized User 重定向到登录页面“Account/Login”,但它却将我重定向到“Account/AccessDenied”
我尝试了以下但没有用
services.AddIdentity<AppUser, AppRole>(option =>
{
option.User.RequireUniqueEmail = true;
}).AddEntityFrameworkStores <AppIdentityDbContext>();
我在这里编辑路径
services
.AddAuthentication()
.AddCookie(options =>
{
options.LoginPath = "account/login";
options.LogoutPath = "account/logout";
options.AccessDeniedPath = "account/login";
});
这是控制器
[Authorize(Roles = "admin , secretary")]
您可以使用
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = "/Identity/Account/Login"; //in your case /Account/Login
options.LogoutPath = "/Identity/Account/logout";
options.AccessDeniedPath = "/Identity/Account/login";
});
services.AddAuthentication().AddCookie();
此外,如果您使用的是 .net core 1.x,并希望迁移到 2.0 或更高版本,请遵循此 Microsoft migration article
我在角色和路线方面遇到问题 我有一个帐户控制器,我在我的一个控制器中使用 Asp Identity。它需要特定的角色才能访问它。问题是,我希望它将 Unauthorized User 重定向到登录页面“Account/Login”,但它却将我重定向到“Account/AccessDenied”
我尝试了以下但没有用
services.AddIdentity<AppUser, AppRole>(option =>
{
option.User.RequireUniqueEmail = true;
}).AddEntityFrameworkStores <AppIdentityDbContext>();
我在这里编辑路径
services
.AddAuthentication()
.AddCookie(options =>
{
options.LoginPath = "account/login";
options.LogoutPath = "account/logout";
options.AccessDeniedPath = "account/login";
});
这是控制器
[Authorize(Roles = "admin , secretary")]
您可以使用
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = "/Identity/Account/Login"; //in your case /Account/Login
options.LogoutPath = "/Identity/Account/logout";
options.AccessDeniedPath = "/Identity/Account/login";
});
services.AddAuthentication().AddCookie();
此外,如果您使用的是 .net core 1.x,并希望迁移到 2.0 或更高版本,请遵循此 Microsoft migration article