<pipelines> <renderField> <processor patch:before="processor[@type='Sitecore.Pipelines.RenderField.RenderWebEditing, Sitecore.Kernel']" type="Sitecore.Pipelines.RenderField.ProtectedImageLinkRenderer, Sitecore.Kernel" /> </renderField> </pipelines>
What Sitecore do is, Sitecore adds a hash value to the image URL query string, when images requests contains scaling parameters. This means, in older versions than Sitecore versions 7.5 a media request may look something like this:
http://[yourDomain]/~/media/Default Website/sc_logo.ashx?w=100&h=75
scaling the original image from:
to:
(for image scaling parameters [link: http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2011/05/media-options-and-query-string-parameters-in-the-sitecore-aspnet-cms.aspx])
In Sitecore version 7.5 and newer versions, the media request may look something like this:
http://[yourDomain]/~/media/Default Website/sc_logo.ashx?w=100&h=75&hash=D02739F8C8E02B64D5D2AD008175975D28123C17
Therefore, if you are manually setting up the image URL containing scaling parameters, you need to generate the correct hash value and append it to the image URL, or else Sitecore will only return the original unaltered image. You can generate the hash value by your C# code or by Sitecores new mediaHash.aspx tool.
By your C# code:
If you need the full media URL containing scaling parameters and the hash value in your C# code, you can use the HashingUtils.ProtectAssertUrl(url):
Sitecore.Resources.Media.HashingUtils.ProtectAssetUrl(
Sitecore.Resources.Media.MediaManager.GetMediaUrl(
myMediaItem,
new MediaUrlOptions()
{
Language = Context.Language,
Width = 100,
Height = 75
}))
If you only need the hash value for the provided image URL, you could use the GetAssertUrlHash(url).
By MediaHash.aspx tool
You find the new mediaHash.aspx tool here: http://[yourDomain]/sitecore/admin/mediaHash.aspx. Add the media URL containing the scaling parameters into the textfield:
You can disable the security feature by setting the Media.RequestProtection.Enabled to false, but it is strongly recommended not to disable this feature.
<settings> <!-- MEDIA - REQUEST PROTECTION - ENABLED Specifies whether media request protection is enabled or not. Default value: true--> <setting name="Media.RequestProtection.Enabled" value="false"> </setting>
... </settings>
4 comments:
Good post! Thanks for sharing Its very informative
Image processing Services
Hi there, many thanks for sharing this. I have a similar question but different scenario link below
http://stackoverflow.com/questions/43615813/sitecore-8-1-image-resize-using-hash-in-mediarequesthandler
I hope you can guide me in right direction or let me know what I am doing wrong. Any help would be really appreciated
Thanks
I see the greatest contents on your blog and I extremely love reading them. hype medias
Post a Comment