LoginPath不重定向(asp.net核心)

时间:2016-12-26 20:02:09

标签: c# authentication redirect asp.net-core

在配置上的startup.cs上我有:

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationScheme = "Cookies",
    LoginPath = new PathString("/Account/Login/"),
    AccessDeniedPath = new PathString("/Account/Forbidden/"),
    AutomaticAuthenticate = true,
    AutomaticChallenge = true
});

在普通控制器上:

[Authorize]
public class HomeController : Controller
{
    public IActionResult Index() { return View();  }
}

在AccountController上:

public class AccountController : Controller
{
    [AllowAnonymous]
    public IActionResult Login() { return View(); }
}

访问主页/索引,未经身份验证,应重定向到登录,但返回空白页。 我在提琴手上收到401,但页面没有重定向。 这似乎没有错,但仍然无效。 有谁知道为什么?

1 个答案:

答案 0 :(得分:3)

您遇到AutomaticChallenge选项的问题。此选项导致IISIntegration和Cookie中间件之间发生冲突,请参阅详细说明here

如果您使用[授权],解决方案是将以下代码添加到ConfigureServices(IServiceCollection services)内的startup.cs

services.AddAuthorization(options =>
{
    options.DefaultPolicy = new AuthorizationPolicyBuilder("Cookies").RequireAuthenticatedUser().Build();
});