使用ASP.NET属性时,如何在[Authorize]核心上显示错误页面?
策略
services.AddAuthorization(p =>
{
p.AddPolicy("RequireAdminRole", policy => policy.RequireRole("Admin"));
p.AddPolicy("RequireTrainerRole", policy => policy.RequireRole("Trainer"));
p.AddPolicy("RequireTeamLeaderRole", policy => policy.RequireRole("Team Leader"));
p.AddPolicy("RequireUserRole", policy => policy.RequireRole("User"));
});控制器
[Authorize(Policy = "RequireAdminRole")]
[Area("Admin")]
public class BaseController : Controller
{
}发布于 2016-11-01 08:49:12
如果使用cookie身份验证来保护资源,则可以使用AccessDeniedPath属性重定向到错误页:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AccessDeniedPath = "<path>"
});否则,您可以使用UseStatusCodePages处理403个
app.UseStatusCodePages(new StatusCodePagesOptions()
{
HandleAsync = (ctx) =>
{
if (ctx.HttpContext.Response.StatusCode == 403)
{
//handle
}
return Task.FromResult(0);
}
}); https://stackoverflow.com/questions/40356447
复制相似问题