判断Request.UrlReferrer对火狐无效??

我现在有一个页面default.aspx,我想做一个功能就是如果是通过window.open打开这个页面,就Redirect到另一个页面去,如果是其它页面比如(download.html)通过src的方式链接这个地址,就输出一个图片。我的思路是通过判断来路即(Request.UrlReferrer)来实现。代码如下,我测试了在IE下是可行的。但是在火狐下的问题是,如果我通过新建标签-输入default.aspx,UrlReferer为空,但是如果通过window.open的方式打开的话,火狐仍然能识别urlreferrer.
也就是说,我们通常所说的通过window.open方式是没有来路的,但是这个说法在火狐面前是无效的,火狐仍然能识别来路。
我的火狐版本是3.5.5。火狐这一强大的功能困扰了我,我现在不要它这么强大。如果是我的思路有问题,请高手赐教。如果有其它程序的办法让火狐在window.open下不识别来路,请赐教。声明:我没有安装refcontrol这个识别盗链的控件。
Default.aspx

  public   partial   class  _Default : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
string  imagename  =   "" ;
            
string  strhz  =   "" ; // 图片后缀
             string  longimagename  =  Request.Path;
            
string [] a  =  longimagename.Split( new   char [] {  ' / '  }, StringSplitOptions.RemoveEmptyEntries);
            imagename 
=  a[a.Length - 2 ].ToString(); // 后面还有个/default.aspx
            strhz  =  imagename.Split( new   char [] {  ' . '  })[ 1 ].ToLower();
            
string  url  =  System.Configuration.ConfigurationManager.AppSettings[imagename  +   " .url " ].ToString(); // 中间的自动refresh的页面文件名  
             if  (Request.UrlReferrer  !=   null )
            {
                MemoryStream ms 
=   new  MemoryStream();
                System.Drawing.Image img 
=  System.Drawing.Image.FromFile(Request.PhysicalPath.ToLower().Replace( " default.aspx " ,imagename));
               
//  System.Drawing.Image img = System.Drawing.Image.FromFile(imagename);
                 if  (strhz  ==   " gif " )
                {
                    img.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                }
                
else   if  (strhz  ==   " jpeg "   ||  strhz  ==   " jpg " )
                {
                    img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                }
                
else
                {
                    img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                }
                img.Dispose();
                Response.ClearContent();
                Response.ContentType 
=   " image/ "   +  strhz;
                Response.BinaryWrite(ms.ToArray());
            }
            
else
            {
                Response.Redirect(url);
            }
        }
    }

 

Download.html(即用来测试浏览器是否能通过window.open识别来路的静态页面):

判断Request.UrlReferrer对火狐无效?? 代码
 1  <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
 2  < html  xmlns ="http://www.w3.org/1999/xhtml"   >
 3  < head >
 4    < title ></ title >
 5  </ head >
 6  < body >
 7  < div >
 8  <!-- IE下不能取得来路,但是火狐正常取得-->
 9  <img src=taoke5.jpg onclick="window.open('http://192.168.1.254/moban.gif/default.aspx');" />
10  </div>
11  </body>
12  </html>

 


 

你可能感兴趣的:(request)