未经授权时重定向

Redirect when unAuthorize

我正在研究 ASP.NET 核心 2.x。我正在处理 unAuthorize(按角色)页面的 Access Denied 页面。 这是我的管理员控制器:

[Authorize(Roles = "Administrator")]
public class AdminController : Controller
{
}

这是我在 HR 和 Fin 的其他角色:

[Authorize(Roles = "HRManager,Finance")]
public class SalaryController : Controller
{
}

我将代码 AddAuthentication 放入 ConfigureServices (Startup.cs)

services.AddAuthentication ()
        .Services.ConfigureApplicationCookie (options => {

            options.AccessDeniedPath = "/Account/AccessDenied";

        });

当人力资源和财务角色的用户尝试访问管理菜单时,我希望这些用户会重定向到 AccessDenied 页面,但事实并非如此。它重定向到

/Account/Login?ReturnUrl=%2FAdmin

我也准备了一个空白的 AccessDenied.cshtml 页面,但它从未到达。

这个问题有什么解决办法吗? 或者我在 AddAuthentication 中遗漏了什么?

试试 .net core 2.0

add this in to your startup.cs in ConfigureServices method

services.ConfigureApplicationCookie(options => options.LoginPath = "/Account/LogIn");