2011-07-20 53 views
2

我需要找出请求来自哪个页面。比如我在页面A中的按钮,单击它时重定向如下UrlReferrer - 需要找出它来自哪里

http://...../ClientName/names.aspx?nameId=4, 

页A的

URL = "http://...../Maintenance/names.aspx?nameId=4" 

在页面B,我希望能够确定它是从页A.未来请注意,页面A和页面B具有相同的结尾,但在不同的文件夹中......如何在页面B中知道它是否来自文件夹维护中的names.aspx?

谢谢

回答

4

一个提示:URL引用是由浏览器发送(请求标题)。但这是不可靠的,因为(例如)安全工具可能会将它从请求中删除,就像一些代理。我在过去使用过相同的概念,但后来因为这个原因失败了。

例子:http://darklaunch.com/2011/05/07/chrome-disable-referer-headers

在另一方面,如果你能依靠的来源 - 例如因为你在一个内联网中,继续 - 如FT/Kuru所说的使用HttpContext.Current.Request.UrlReferrer。非常容易使用。

我们后来解决了这个应用级别:

  1. 给不同的HTML形式的不同逻辑名称
  2. 您可以使用隐藏的表单字段有额外信息的形式
0

您可以使用HttpContext.Current.Request.UrlReferrer来确定引荐。然后,您必须使用RegEx来确定它是否是您想要的页面(取决于您的应用程序的工作方式)或String.SubString()来确定它。

1
string myFileName = string.Empty; 
System.IO.FileInfo PageFileInfo = new System.IO.FileInfo(Request.UrlReferrer); 
myFileName = PageFileInfo.Name; 
return myFileName; 

顺便说一句 - 这可能不是最好的安全方法等,因为UrlReferrers可以很容易被欺骗。