Asp.net mvc 使用图像大小调整器ASP.NET MVC保护图像
我使用ASP.NET的imageresizer。当我拍到照片的时候,我把我们的品牌放进去。但是我怎样才能保护原始图片呢。 例如:Asp.net mvc 使用图像大小调整器ASP.NET MVC保护图像,asp.net-mvc,imageresizer,Asp.net Mvc,Imageresizer,我使用ASP.NET的imageresizer。当我拍到照片的时候,我把我们的品牌放进去。但是我怎样才能保护原始图片呢。 例如: <img src="http://www.domain.com/mypic.jpg?width=400&watermark=mywatermark" /> 但是,一个人可以从我的原始照片,我如何才能保护它 谢谢。有很多方法,您可以如何保护热链接。其中之一就是使用重写规则。如果有人试图在其他网站上链接您的图像,它将显示no_hotlinking_a
<img src="http://www.domain.com/mypic.jpg?width=400&watermark=mywatermark" />
但是,一个人可以从我的原始照片,我如何才能保护它
谢谢。有很多方法,您可以如何保护热链接。其中之一就是使用重写规则。如果有人试图在其他网站上链接您的图像,它将显示no_hotlinking_allowed.jpg图像:
<rewrite>
<rules>
<rule name="Hotlinking protection">
<match url=".*\.(gif|jpg|png)$" />
<conditions>
<add input="{HTTP_REFERER}" pattern="^$" negate="true" />
<add input="{HTTP_REFERER}" pattern="^http://(.*\.)?domain\.com/.*$" negate="true" />
</conditions>
<action type="Rewrite" url="/images/no_hotlinking_allowed.jpg" />
</rule>
</rules>
</rewrite>
这是一种通用方法,与imageresizer无关
在这种情况下,如果您希望保护对图像的访问而不使用水印请求系统,则此规则将适合您:
<rule name="Autoadd watermark">
<match url=".*\.(gif|jpg|png)$" />
<conditions>
<add input="{QUERY_STRING}" pattern=".*watermark.*" negate="true" />
</conditions>
<action type="Rewrite" url="{PATH_INFO}?watermark=watermark" />
</rule>
您可以将自定义授权规则添加到ImageResizer,以便它仅为带有水印的图像提供服务:
ImageResizer.Configuration.Config.Current.Pipeline.AuthorizeImage +=
delegate(IHttpModule sender, HttpContext context, IUrlAuthorizationEventArgs e)
{
// You can also check that you support specific watermark parameter value.
if ( string.IsNullOrEmpty(context.Request.QueryString["watermark"] ) )
{
e.AllowAccess = false;
}
};
有关更多信息,请查看ImageResizer。谢谢。这是一种安全的方法,不是吗?它是为了保护热链接,所以没有人可以把你的图片放到其他网站上。但用户仍然可以使用原件。