首页 > 解决方案 > 未经身份验证的用户被重定向到 mysitedomain/projectfolder 而不是 mysitedomain/projectfolder/master/login。.net mvc

问题描述

所以我在托管 iis 的应用程序中遇到问题,目前我们只有在 iis 上托管的 webforms 应用程序,我们已经创建了我上传的 asp.mvc 项目mysite/projectfolder/。每当用户输入无效的用户 ID 和密码时,它会将用户重定向到mysite/projectfolder/而不是mysite/projectfolder/master/login,我们是否需要为 MVC 项目单独配置 iis?

MasterController中的登录代码:

  [AllowAnonymous] 
  [Route("Login")]
  public ActionResult Login()
  {
     Session.Abandon();
     Login userLogin = new Login();
     return View(userLogin);
   }


Code For RouteConfig:
     public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            //routes.MapMvcAttributeRoutes();
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Master", action = "Login", id = UrlParameter.Optional }
            );
        }
    }

POST Method:
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Login(Login userLogin)
        {
            if ((userLogin.userName != "" && userLogin.userPassword != "") && (userLogin.userName != null && userLogin.userPassword != null))
            {
                
                /*userLogin.userName = form["userName"];
                userLogin.userPassword = form["userPassword"];*/
                SqlCommand cmd = await Task.Run(()=> objMasterOperation.checkUserCredentials(userLogin));
                ar = Array.CreateInstance(System.Type.GetType("System.String"), 2, 3);
                ar.SetValue(cmd.Parameters["@MSG"].Value, 0, 0);
                ar.SetValue(cmd.Parameters["@IsCritical"].Value.ToString(), 0, 1);
                string KyUserID = cmd.Parameters["@KyUserID"].Value.ToString();
                string Level = cmd.Parameters["@Level"].Value.ToString();
                if (ar.GetValue(0, 1).ToString() == "True")
                {
                    Session.Add("UserID", userLogin.userName);
                    Session.Add("KyUserID", KyUserID.ToString().Trim());
                    Session.Add("Level", Level.ToString().Trim());
                    Session.Add("UserEmailID", cmd.Parameters["@EmailID"].Value.ToString());
                    ViewBag.ErrorMsg = ar.GetValue(0, 0).ToString();
                    
                }
                else
                {
                    userLogin.errorMessage = ar.GetValue(0, 0).ToString();
                    return View("Login","_LayoutLogin",userLogin);
                }
            }
            else
            {
                userLogin.errorMessage = "Please enter userid and password";
                return View("Login", "_LayoutLogin", userLogin);
            }           
            return RedirectToAction("Home", "Master");
        }

标签: c#asp.net-mvc

解决方案


推荐阅读