我需要找出请求来自哪个页面。例如,我在页面A中有一个按钮,当点击它时,它重定向如下
http://...../ClientName/names.aspx?nameId=4,
Page A's
URL = "http://...../Maintenance/names.aspx?nameId=4"
在页面B中,我希望能够确定它是否来自Page A.请注意,页面A和页面B具有相同的结尾但位于不同的文件夹中......如何在页面B中知道它是否来自维护文件夹中的names.aspx?
谢谢
答案 0 :(得分:4)
一个提示:URL Referrer由浏览器发送(请求标头)。但这不可靠,因为(例如)安全工具可能会将其从请求中删除,就像一些代理一样。我在几年前就使用过相同的概念,但后来由于这个原因失败了。
示例:http://darklaunch.com/2011/05/07/chrome-disable-referer-headers
另一方面,如果您可以依赖推荐人 - 例如因为你在内联网,所以继续 - 因为FT / Kuru说使用HttpContext.Current.Request.UrlReferrer
。非常容易使用。
我们后来在应用程序级别解决了这个问题:
答案 1 :(得分:1)
string myFileName = string.Empty;
System.IO.FileInfo PageFileInfo = new System.IO.FileInfo(Request.UrlReferrer);
myFileName = PageFileInfo.Name;
return myFileName;
BTW - 这可能不是最好的安全方法等,因为UrlReferrers很容易被欺骗。
答案 2 :(得分:0)
您可以使用HttpContext.Current.Request.UrlReferrer
来确定引荐来源。然后你必须使用RegEx来确定它是你想要的页面(取决于你的应用程序的工作方式)或String.SubString()来确定它。