正常地址是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來做)。
?

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
其實大小寫結果一樣 只是我頁面保存了cookie ?和?localstorage 登入成功后變成http://xxxx/OA/pms/
之前寫入的都在?http://xxxx/oa/pms/這里域里面 所以會出現一個異常問題 提示未登入。
- 4 回答
- 0 關注
- 569 瀏覽
添加回答
舉報
0/150
提交
取消