Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用图像大小调整器ASP.NET MVC保护图像_Asp.net Mvc_Imageresizer - Fatal编程技术网

Asp.net mvc 使用图像大小调整器ASP.NET MVC保护图像

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

我使用ASP.NET的imageresizer。当我拍到照片的时候,我把我们的品牌放进去。但是我怎样才能保护原始图片呢。 例如:

<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。

谢谢。这是一种安全的方法,不是吗?它是为了保护热链接,所以没有人可以把你的图片放到其他网站上。但用户仍然可以使用原件。