0

我有一个使用 ASP NET MVC 开发的应用程序,并且我在 IIS 中配置了一个虚拟目录。

我可以访问服务器文件夹以及位于 http:localhost:8081/application 的应用程序

我按预期重定向到位于 /Account/Login 的登录页面,但是当我使用我的用户名/密码登录时,我得到一个 Erro HTTP 404.0 - Not Found。

为什么会有这种行为?

编辑:

控制器:

    //
    // POST: /Account/Login
    [HttpPost]
    [ValidateAntiForgeryToken]
    [AllowAnonymous]
    public ActionResult Login(LoginModel model, string returnUrl)
    {
        MembershipProvider mp = Membership.Provider;

        if (ModelState.IsValid && mp.ValidateUser(model.UserName, model.Password))
        {
            FormsAuthentication.SetAuthCookie(model.UserName, false);
            return RedirectToAction("Index", "Home");
        }

        // If we got this far, something failed, redisplay form
        ModelState.AddModelError("", "Username ou Password incorreto!.");

        return View(model);
    }  

路由配置:

namespace tgpwebged { public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

}

4

2 回答 2

0

问题不在于我的 asp net 应用程序,而在于 IIS 配置。负责 IIS 的人解决了这个问题。谢谢

于 2013-01-07T06:42:11.647 回答
0

可能您的 web.config 应该在其loginUrl1属性中包含虚拟目录。

尝试像这样更改您的 web.config:

<authentication mode="Forms">
      <forms loginUrl="tgpwebged/Account/Login"  />
</authentication>
于 2012-11-29T07:07:31.657 回答