当前位置:编程学习 > C#/ASP.NET >>

如何检测 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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,