0

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

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

Page page = HttpContext.Current.Handler as Page;

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

我也尝试使用 HttpContext.CurrentHandler,但也没有运气。您可以提供的任何帮助将不胜感激。

4

2 回答 2

0

我认为它可以帮助你:

如何防止来自您的 ASP.NET 站点的图像热链接?

于 2012-08-17T15:46:30.167 回答
0

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

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

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

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

通过这种方式,您可以验证链接是否由您的页面生成,并在必要时将其过期。

于 2012-08-17T15:51:07.117 回答