在配置上的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,但页面没有重定向。 这似乎没有错,但仍然无效。 有谁知道为什么?
答案 0 :(得分:3)
您遇到AutomaticChallenge选项的问题。此选项导致IISIntegration和Cookie中间件之间发生冲突,请参阅详细说明here。
如果您使用[授权],解决方案是将以下代码添加到ConfigureServices(IServiceCollection services)
内的startup.cs
services.AddAuthorization(options =>
{
options.DefaultPolicy = new AuthorizationPolicyBuilder("Cookies").RequireAuthenticatedUser().Build();
});