首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用图像Resizer ASP.NET MVC保护图像

问用图像Resizer ASP.NET MVC保护图像
EN

Stack Overflow用户
提问于 2017-01-23 10:05:01
回答 2查看 290关注 0票数 0

我为ASP.NET使用了imageresizer,当我得到照片时,我就把我们的品牌放在上面。但我怎样才能保护原画。例如:

代码语言:javascript
复制
<img src="http://www.domain.com/mypic.jpg?width=400&watermark=mywatermark" />

但是一个人可以从http://www.domain.com/mypic.jpg拍下我原来的照片,我该如何保护它呢?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-23 10:09:10

有很多种方法,你可以如何做“热链接保护”。其中之一是使用重写规则。如果有人试图将您的图片链接到另一个网站,它将显示no_hotlinking_allowed.jpg图像:

代码语言:javascript
复制
<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>

它是一种通用的方法,与图像采集器无关。

如果您想保护对图像的访问而不使用水印问题字符串,则此规则将适合您:

代码语言:javascript
复制
<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>
票数 2
EN

Stack Overflow用户

发布于 2017-01-23 11:16:20

您可以向ImageResizer添加自定义授权规则,以便它只提供带有水印的图像:

代码语言:javascript
复制
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 事件文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41803657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档