为了账号安全,请及时绑定邮箱和手机立即绑定

mvc跳转问题

mvc跳转问题

牧羊人nacy 2018-12-07 05:07:32
正常地址是http://xxxx/OA/pms/ 但是之前有部分用户保存的是 http://xxxx/oa/pms/ 小写 或者不小心输入小写。 希望能自动跳转到http://xxxx/OA/pms/ 页面  请问怎么解决呢? 目前这个是跳转的控制器 没测试 感觉有问题。 OA/pms/是iis发布设置的虚拟目录。   namespace pms.AOP { public class LoginCheckAttribute : Controller { protected override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.RouteData.Values["controller"].ToString().IndexOf("Login", StringComparison.Ordinal) >= 0) { //oa/pms/跳转 if (filterContext.HttpContext.Request.Url != null && filterContext.HttpContext.Request.Url.ToString().IndexOf("oa/pms", StringComparison.Ordinal)>=0) { filterContext.Result = RedirectToRoute(new { Controller = "Login", Action = "Index" }); } return; } var token = ""; var httpContext = System.Web.HttpContext.Current; if (httpContext.Request.Cookies["token"] != null) token = httpContext.Request.Cookies["token"].Value; if (token == "") { var httpCookie = httpContext.Request.Cookies["Redis_SessionId"]; if (httpCookie != null) token = "Session_" + httpCookie.Value;//第3方登入 } var flag = RedisBase.Hash_Exist(token, "userName"); if (flag) return; filterContext.Result = RedirectToRoute(new { Controller = "Login", Action = "Index", flag = "expired" }); base.OnActionExecuting(filterContext); } } }
查看完整描述

4 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

首先,IIS发布默认是不区分大小写的。另外,作为虚拟目录,浏览器会当成两个来存储localStorage么(还真没注意过这个问题)? 就问题本身来说,在页面index.html上,写个js,发现是小写的oa,就重新设定一个新的跳转地址。(该方式也可以在后端通过Navigate来做)。  
查看完整回答
反对 回复 2018-12-09
?
千万里不及你

TA贡献1784条经验 获得超9个赞

你找找有没有类似“MVCURL忽略大小写”这样的结果吧。
查看完整回答
反对 回复 2018-12-09
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

其实大小写结果一样 只是我页面保存了cookie  和 localstorage 登入成功后变成http://xxxx/OA/pms/ 之前写入的都在 http://xxxx/oa/pms/这里域里面 所以会出现一个异常问题 提示未登入。
查看完整回答
反对 回复 2018-12-09
?
撒科打诨

TA贡献1934条经验 获得超2个赞

@s_p: 是你的cookie设置问题?你的cookie设置的path是什么?
查看完整回答
反对 回复 2018-12-09
  • 4 回答
  • 0 关注
  • 534 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信