我在asp.net页面中检查会话变量并重定向到我的默认页面。
if (Session["OrgId"] != null)
{
// some logic
}
else
{
Response.Redirect("../Default.aspx?Sid=1", false);
}
并在我的default.aspx页面中完成了这个,
Int64 id = GetId(Request.RawUrl.ToString());
if (id == 1)
{
// I ll show "Session Expired"
}
public Int64 GetId(string url)
{
Int64 id = 0;
if (url.Contains("="))
{
if (url.Length > url.Substring(url.LastIndexOf("=")).Length)
{
id = Convert.ToInt64(url.Substring(url.LastIndexOf("=") + 1));
}
}
return id;
}
这适用于googlechrome,firefox但不适用于IE。 “行动中止”例外。
答案 0 :(得分:3)
尝试更改
Response.Redirect("../Default.aspx?Sid=1", false);
到
Response.Redirect("../Default.aspx?Sid=1");
或
Response.Redirect("../Default.aspx?Sid=1", true);
答案 1 :(得分:2)
Redirect(String, Boolean)
将客户端重定向到新URL。 指定新URL以及是否 执行当前页面应该 终止。
这意味着Response.Redirect("../Default.aspx?Sid=1", false);
不会终止当前的响应。
答案 2 :(得分:0)
IE在发送标题之后但在页面终止之前,比其他浏览器更敏感地更改DOM。
这是你的问题:
Response.Redirect("../Default.aspx?Sid=1", false);
尝试将false更改为true。
另外,要非常小心页面名称中的大小写。 “Default.aspx”和“default.aspx”实际上不是同一页面,即使Windows让你逃脱它。