从HttpContext获取页面

时间:2012-08-17 15:44:16

标签: c# asp.net-mvc asp.net-mvc-3

我基本上试图设计一个控制器动作,如果在页面上访问它将返回一个文件,但如果有人试图直接转到URL或热链接,则不会。

我看到这样的东西,但它对我来说不起作用C#4

Page page = HttpContext.Current.Handler as Page;

if (page != null)
{
 // Use page instance.
}

我也尝试过使用HttpContext.CurrentHandler,但也没有运气。任何你能给予的帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

通常检查是否将引荐来源设置为您喜欢的内容 - 请检查HttpRequest.UrlReferrer

更强大的检查是生成文件的“随机”网址或添加只有您的网页可以提供的查询参数(即当前时间的哈希值+只有服务器知道的秘密值):

  

/Files/Special.txt?openvalue=2012-08-17&hash=HASHVALUE

其中根据“openvalue”和某些秘密数据(即“2012-08-17”+“secretetext”)的串联计算HASHVALUE(即SHA256)。

通过这种方式,您可以验证网页是否生成了链接,并在必要时将其缩小。