如何检测 b.aspx 页面一定是从 a.aspx 页面转过来的?
有两个页面a.aspx
b.aspx
a页面上用JS写的 document.location.href="b.aspx";
跳转到b页面。
但不想让用户直接在浏览器里打开 b.aspx 页面,一定要先从 a 页面跳转过来,该如何做?
我的初步想法是在b页面检查 referrer,但是好像有的浏览器不支持referrer,是否还有其他什么方法呢? --------------------编程问答-------------------- 采用控件的PreviousPage属性
或者使用PreviousPageType指令
比如:
b.aspx:
<%@ PreviousPageType VirtualPath="a.aspx" %>
b.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
{
//your code
}
else
{
Response.Redirect("a.aspx");
}
} --------------------编程问答-------------------- 楼上的代码我测试了以下,如果 a页面里用js跳转到b页面的话,b页面里面的 PreviousPage好像永远是 null --------------------编程问答-------------------- a.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
Session["PAGENAME"] = "a";
}
b.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["PAGENAME"] != "a")
Response.Redirect("a.aspx");
}
这样可以吗?你试试 --------------------编程问答-------------------- 传一个特殊值过去,再B页面判断特殊值,呵呵 --------------------编程问答-------------------- 很多啊,随便传个字符,建立个会话,弄个cookie,在B页面弄个判断就行了。 --------------------编程问答-------------------- 简单一点的,
requeset.RawUrl 获取当前请求的原始 URL。
Url 获取有关当前请求的 URL 的信息。 --------------------编程问答-------------------- 传的时候传个标志位,如:Response.Redirect("a.aspx&page=a");
在B里检测 string page= response。qua忘了【page】;
if(page=="a")
{来自a;
}
else
{
}
--------------------编程问答-------------------- 用Request.UrlReferrer试试 --------------------编程问答-------------------- js写入cookie一个标志,b页面判断cookie即可,这样比url传参安全。 --------------------编程问答-------------------- 用session或者cookie啊 --------------------编程问答-------------------- --------------------编程问答-------------------- string url=Request.UrlReferrer;
好像这个能判断吧。以前也不知道是哪个。楼主试试
补充:.NET技术 , ASP.NET