.net core 为什么';ASP.NET核心MVC 3.1中生产中的t身份验证工作?

.net core 为什么';ASP.NET核心MVC 3.1中生产中的t身份验证工作?,.net-core,asp.net-core-mvc,asp.net-core-3.1,asp.net-authorization,.net Core,Asp.net Core Mvc,Asp.net Core 3.1,Asp.net Authorization,因此,我对ASP.NET Core非常陌生,正在致力于将应用程序部署到生产服务器。我使用的是标准的身份验证/实体框架库,效果很好。但是,当我使用[Authorize]属性保护页面时,它在我的开发机器上工作,但在生产机器上不工作。在我的Startup.cs类中没有任何异常,并且没有IsDevelopment子句: app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); a

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

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

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

[Authorize]
public class HomeController : Controller

这将要求对用户进行身份验证,以便在控制器内运行任何操作。我不知道为什么它不会在操作级别工作,除非在控制器级别有其他内容覆盖它。

您使用的是哪种生产服务器?是否存在有关身份验证不起作用的错误消息或日志信息?而且,您是否可以在ConfigureServices方法中发布相关代码,或者您是否可以发布再现问题的详细步骤,我们可能更容易再现问题并找到问题。另外,我发现了一个,似乎问题与服务器配置有关。我使用的是Windows server 2019,所以不像其他线程那样使用Apache。明天当我在我的开发箱时,我会发布代码。身份验证工作正常。在登录之前,我无法进入默认页面。很明显,当使用[Authorize]属性修饰时,控制器方法不受保护。未登录时,我可以访问受保护的页面。如果您不介意从startup.cs共享您的ConfigureServices方法,请将其添加到问题中。