Asp.net mvc 4 用户可以成功登录,但登录页面将显示,而不是重定向

Asp.net mvc 4 用户可以成功登录,但登录页面将显示,而不是重定向,asp.net-mvc-4,authorization,Asp.net Mvc 4,Authorization,我已经将一个项目从asp.NETMVC2转移到asp.NET4,经过一点修复,一切似乎都正常 应用程序中需要授权的部分除外。如果没有授权,可以查看未授权页面,但只要您尝试登录,一切都会进行 香蕉当您登录时,您将被登录(您可以在部分登录中看到您的姓名),但未被重定向并提示您再次登录,并且您无法访问部分页面 适用于非授权用户的应用程序。一切都可以在本地主机上运行,但不能在部署的站点上运行 起初我认为我的machinekey和应用程序池刷新有问题,所以我添加了一个。还是一样的问题 我知道MVC使用

我已经将一个项目从asp.NETMVC2转移到asp.NET4,经过一点修复,一切似乎都正常

应用程序中需要授权的部分除外。如果没有授权,可以查看未授权页面,但只要您尝试登录,一切都会进行 香蕉当您登录时,您将被登录(您可以在部分登录中看到您的姓名),但未被重定向并提示您再次登录,并且您无法访问部分页面 适用于非授权用户的应用程序。一切都可以在本地主机上运行,但不能在部署的站点上运行

  • 起初我认为我的machinekey和应用程序池刷新有问题,所以我添加了一个。还是一样的问题
我知道MVC使用websecurity而不是membership,但我读到MVC4项目中可以存在一个成员身份解决方案,我很乐意使用我的自定义成员身份提供程序和角色提供程序,如果可能的话,可以节省一些时间

控制器:

    [HttpPost]
    public ActionResult LogOn(LogOnModel model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            if (MembershipService.ValidateUser(model.UserName, model.Password))
            {
                FormsService.SignIn(model.UserName, true);
                FormsAuthentication.SetAuthCookie(model.UserName, true);
                var role = userRepo.usersInRoles.First(x => x.userMail == model.UserName);
                if (role.roleName == "Business")
                    return RedirectToAction("Start", "Business");
                if (role.roleName == "Admin")
                    return RedirectToAction("Index", "Admin");
            }
            else
            {
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }
        }

        return View(model);
    }
成员身份和角色的配置设置

<authentication mode="Forms">
   <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<membership defaultProvider="AccountMembershipProvider">
  <providers>
    <clear />
    <add name="AccountMembershipProvider" type="MyApp.UI.Infrastructure.AccountMembershipProvider" applicationName="/" />
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="RoleMembershipProvider">
  <providers>
    <clear />
    <add name="RoleMembershipProvider" type="MyApp.UI.Infrastructure.RoleMembershipProvider" />