正常地址是http://xxxx/OA/pms/
但是之前有部分用戶保存的是?http://xxxx/oa/pms/ 小寫 或者不小心輸入小寫。
希望能自動(dòng)跳轉(zhuǎn)到http://xxxx/OA/pms/ 頁面?
請(qǐng)問怎么解決呢?
目前這個(gè)是跳轉(zhuǎn)的控制器 沒測試 感覺有問題。?OA/pms/是iis發(fā)布設(shè)置的虛擬目錄。
?
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/跳轉(zhuǎn)
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 回答
料青山看我應(yīng)如是
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先,IIS發(fā)布默認(rèn)是不區(qū)分大小寫的。另外,作為虛擬目錄,瀏覽器會(huì)當(dāng)成兩個(gè)來存儲(chǔ)localStorage么(還真沒注意過這個(gè)問題)?
就問題本身來說,在頁面index.html上,寫個(gè)js,發(fā)現(xiàn)是小寫的oa,就重新設(shè)定一個(gè)新的跳轉(zhuǎn)地址。(該方式也可以在后端通過Navigate來做)。
?
搖曳的薔薇
TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
其實(shí)大小寫結(jié)果一樣 只是我頁面保存了cookie ?和?localstorage 登入成功后變成http://xxxx/OA/pms/
之前寫入的都在?http://xxxx/oa/pms/這里域里面 所以會(huì)出現(xiàn)一個(gè)異常問題 提示未登入。
- 4 回答
- 0 關(guān)注
- 581 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
