限制访问其他网站上的图像

时间:2014-04-16 14:37:28

标签: c# asp.net-mvc asp.net-mvc-3 http-headers ihttphandler

我在ASP.net MVC3中制作了网站并在其上托管了图片。但其他网站正在使用我的图片链接并窃取我的带宽。有没有办法使用http标头检查每个请求并发送有关网站名称的不同响应?

请为我推荐一篇文章或帮助我。

谢谢和问候

3 个答案:

答案 0 :(得分:1)

您可以通过在服务器上发布实际路径来阻止访问这些图片。 阅读here

这就是你的< img>标签看起来像:

<img src="data:image/png;base64,iVBORw0K....." id="pictureFrame"/>

这段代码将为C#

中的图像完成工作
private void encryptPhoto(string imagePath)
{
    pictureFrame.Src = @"data:image/gif;base64," + EncodePhoto(Server.MapPath(imagePath));
}
private string EncodePhoto(string fileName)
{
        return Convert.ToBase64String(File.ReadAllBytes(fileName));
}

答案 1 :(得分:0)

我不知道,但您可以做的是将实际图像文件名列表存储在某个秘密文本文件中,并使用PHP或其他类似内容实际显示它们。然后你可以更改文件系统和文本文件中的图像名称,这样你的网站看起来会很好,但你可以让旧的图像文件指向新的图像,说“这个图像是从[MYDOMAIN]偷走”这应该遏制偷窃很快。

答案 2 :(得分:0)

您可以使用MVC路由忽略该图像。根据您的要求定义路线模式。

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("foldername/{filename}.html");
}