如果您正在使用ASP.NET Web API,可能会使用ASP.NET SignIn和UserManager(Identity)来处理身份验证。但是,如果未经身份验证的用户尝试访问需要身份验证的资源,则可能会遇到404错误。
要解决此问题,您可以在Global.asax.cs文件中添加以下代码:
protected void Application_BeginRequest() { if (!Request.IsAuthenticated && Request.RequestContext.RouteData.Values["controller"] != null) { if (String.Equals(Request.RequestContext.RouteData.Values["controller"].ToString(), "Account", StringComparison.OrdinalIgnoreCase)) { Response.Redirect("~/Account/Login"); } } }
这将在每个请求开始时运行,并检查请求是否经过身份验证,以及控制器是否需要身份验证。如果必须进行身份验证并且未经身份验证,则将用户重定向到登录页面。
另外,您还需要确保Web.config文件具有以下设置:
这可以确保ASP.NET不阻止未经身份验证的请求。