ASP.NET Core 2中不同区域的身份验证和LoginPath

时间:2017-08-28 19:50:33

标签: asp.net asp.net-core asp.net-core-mvc .net-core asp.net-authorization

ASP.NET Core 2

帮助我为两条路线配置AddAuthentication:用户(用户帐户)和管理区域。

例如,如果用户未登录并尝试输入/Account/Orders/,则会将其重定向到/Account/SignIn/

但是,如果有人尝试访问/Admin/Orders/,则必须重定向到/Admin/Signin/

没有找到解决方案ATM。

1 个答案:

答案 0 :(得分:5)

解决!

admin区域(控制器)中,我们使用Authorize attr。 arg。:[Authorize(AuthenticationSchemes = "backend")],那就是。

BTW我们可以通过访问AddCookie的选项和事件中的HttpContext进行任何调整。

配置:

services
    .AddAuthentication(o =>
    {
        o.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    })
    .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, o =>
    {
        o.LoginPath = new PathString("/account/login/");
    })
    .AddCookie("backend", o =>
    {
        o.LoginPath = new PathString("/admin/account/login/");
    });