ASP.NET Core 2.0 Identity,两个控制器分别重定向到不同的登录页面

时间:2018-09-25 18:59:08

标签: c# asp.net-core asp.net-core-identity

我有2个控制器

  • TestController
  • DemoController

他们都使用[Authorize]属性和默认身份登录:电子邮件和密码。

我的问题:如何将所有通过TestControoler的未经身份验证的请求重定向到TestAccountController / Login,并将所有转到DemoController的请求重定向到DemoAccountController / Login?

之所以这样,是因为我想拥有2个用于2个不同目的的登录环境。

1 个答案:

答案 0 :(得分:4)

ASP.net核心支持多种身份验证方案。

您可以通过将以下内容添加到Startup.cs中来添加两个

services.AddAuthentication()
  .AddCookie("scheme1", options => { options.LoginPath = "/login1"; })
  .AddCookie("scheme2", options => { options.LoginPath = "/login2"; });

然后指定要在控制器中使用的方案:

[Authorize(AuthenticationSchemes = "scheme1")]
public sealed class SampleController : Controller
{
  //...
}

有关其他详细信息,请参见https://docs.microsoft.com/en-us/aspnet/core/security/authorization/limitingidentitybyscheme?view=aspnetcore-2.1&tabs=aspnetcore2x