在ASP.NET Core 2.1/WebAPI应用程序中,当调用带有[Authorize]的REST URL时出现“HTTP 404未找到”错误,可能是由于以下几个原因引起的:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
});
[Authorize]
public class MyController : Controller
{
// ...
}
[AllowAnonymous]
public IActionResult PublicAction()
{
// ...
}
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddAuthentication("MyAuthenticationScheme")
.AddCookie("MyAuthenticationScheme", options =>
{
options.AccessDeniedPath = "/Account/AccessDenied";
options.LoginPath = "/Account/Login";
});
// ...
}
[Authorize(Roles = "Admin")]
public IActionResult AdminOnlyAction()
{
// ...
}
[Authorize(Policy = "CustomPolicy")]
public IActionResult CustomPolicyAction()
{
// ...
}
如果以上解决方法仍然无法解决你的问题,请检查你的代码和配置文件,以确保没有其他问题。你还可以查看应用程序的日志文件,以获取更多的错误信息,帮助你进行故障排除。
上一篇:ASP.NET Core 2.1 中缺少 AddSignIn 方法
下一篇:ASP.Net Core 2.1: 找不到类型为Microsoft.AspNetCore.Identity.UserManager的服务