MVC5 - 继续获取HTTP错误404.0 - 使用Identity进行身份验证时未找到错误

时间:2016-06-20 18:13:31

标签: c# asp.net asp.net-mvc iis asp.net-identity

在阅读多个论坛(有点)相同的问题,但没有一个建议的答案解决我的问题,我最终得到了自己的帖子。

正如标题所说,我在使用身份验证触发我的应用程序(在localhost上进行测试)时遇到问题。

我不断得到的错误:

HTTP Error 404.0 - Not Found

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Detailed Error Information:



Module
   IIS Web Core 

Notification
   MapRequestHandler 

Handler
   StaticFile 

Error Code
   0x80070002 



Requested URL
   http://localhost:xxxx/auth/login?ReturnUrl=%2F 

Physical Path
   c:\users\xxxx\documents\visual studio 2015\Projects\MyProject\MyProject\auth\login 

Logon Method
   Anonymous 

Logon User
   Anonymous 

Request Tracing Directory
   C:\Users\xxxx\Documents\IISExpress\TraceLogFiles\MyProject

我使用的代码如下:

App_Start文件夹中的启动类

public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = "ApplicationCookie",
                 LoginPath = new PathString("/auth/login")
            });
        }
    }

FilterConfig类也位于App_Start文件夹中:

public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
            filters.Add(new AuthorizeAttribute());
        }
    }

Global.asax中的registerFilters

protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        }

控制器被称为Auth(AuthController),actionresult登录(并为其添加了视图)。这里没什么特别的,因为我已经收到了错误。

在web.config中,我在appSettings中添加了一行:

 <add key="owin:AppStartup" value="MyProject.App_Start.Startup"/>

我不知道我做错了什么,也许是一些错误的IIS配置?或者它真的是给出错误的路径?

这些是我已经尝试的事情(取自其他几个帖子)

  • 添加<add key="autoFormsAuthentication" value="false" /><add key="enableSimpleMembership" value="false"/>到WebConfig文件。
  • 在IIS中将匿名身份验证设置为应用程序池标识而不是特定用户

我的IIS应用程序池如下所示: enter image description here

1 个答案:

答案 0 :(得分:0)

经过一些干预并查看其他身份帖后,我发现我收到的错误消息是因为我已将RouteConfig中的URL设置为空。

我喜欢这样:

 routes.MapRoute(
                name: "Default",
                url: "",
                defaults: new { controller = "StartWeb", action = "Index", id = UrlParameter.Optional }
            );

虽然它应该是这样的:

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "StartWeb", action = "Index", id = UrlParameter.Optional }
            );

将其更改回默认值时,错误消失了。