为什么身份验证在ASP.NET Core MVC 3.1的生产环境中不起作用?

问题描述

因此,我对ASP.NET Core还是相当陌生的,并且正在将应用程序部署到生产服务器。我正在使用标准的身份验证/实体框架库,并且工作正常。但是,当我使用[Authorize]属性保护页面时,该页面可在我的开发机上使用,而不能在生产环境上使用。我的Startup.cs类中没有任何异常,也没有IsDevelopment子句:

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();

解决方法

如果所有方法都需要授权,请尝试将[Authorize]放在控制器类上方:

[Authorize]
public class HomeController : Controller

这将要求用户经过身份验证才能在控制器内运行任何操作。我不确定为什么除非在控制器级别有其他方法可以覆盖它,否则为什么它不能在操作级别上起作用。