Control slouží ke konstrukci servírovacího skriptu pro obrázky uložené v zabezpečených složkách SecurePaths. Control se umísťuje do samostatného .aspx souboru (pojmenovaného typicky imgGet.aspx
, get.aspx
apod.). Klientský požadavek na zabezpečený obrázek je zpracován tak, že skript napřed vyhodnotí pravidla <je:secureRule>
uvnitř <je:secureImgDownload>
a na základě tohoto vyhodnocení obrázek poskytne nebo znepřístupní.
<je:secureImageDownload runat="server" type="PrivateSection.img"> <je:secureRule runat="server" visibleFor="privateSection.allowed" /> <je:secureRule runat="server" visibleFor="globalAccess.photos" /> </je:secureImageDownload>
V souboru se servírovacím skriptem by se měly používat právě jen tyto dva controly (a případně <je:secureFileDownload>
) a žádné další. Obvykle se v jednom souboru uvádí pravidla pro všechny zabezpečené obrázky. Jeden servírovací skript se tak postará o všechny zabezpečené obrázky na webu. V takovém případě je controlů <je:secureImgDownload>
v .aspx souboru uvedeno více za sebou.
Takto zabezpečený obrázek je dostupný pod URL servírovacího skriptu, v jehož parametru se předává ID obrázku. Toto provádí JellyPot zcela transparentně pro všechny obrázky (tj. pole typů <Img>
, <SimpleImg>
, <ImgCollection>
), které mají ve své deklaraci v Site.config uveden atribut securePath
.
Atributy
asTest nepovinný [false, true]
Při nastavení atributu
asTest="true"
se místo obrázku naservíruje placeholder s informací o tom, jak byla vyhodnocena příslušná pravidla<je:secureRule>
a zda bude obrázek zpřístupněn či nikoliv. (Je potřeba mít nastavenýRunMode
nadebug
, vizRunMode
.)field někdy povinný [název pole]
Jméno pole typu
<Img>
,<SimpleImg>
nebo<ImgCollection>
, jehož obsah je skriptem poskytován. Zadává se absolutně, v případě kolekcí bez indexu prvků – napříkladprivateArticleCol.img
. Nelze kombinovat s atributemtype
.size nepovinný [název velikosti definovaný v Site.config]
Jméno velikosti obrázku, pro kterou pravidlo platí. Pokud není atribut uveden, platí pravidlo pro všechny velikosti daného obrázku. Atribut má význam jen pro pole typu
<Img>
, pro pole typu<SimpleImg>
se neuvádí.type někdy povinný [cesta k poli konkrétního typu]
Jméno typu a jeho pole typu
<Img>
,<SimpleImg>
nebo<ImgCollection>
, jehož obsah je skriptem poskytován – napříkladPrivateArticleCol.img
. Nelze kombinovat s atributemfield
.
Vyhodnocení oprávnění uživatele
Při požadavku na obrázek servírovací skript vždy ověří definovaná pravidla <je:secureImgDownload>
v něm obsažená. Podle identifikátoru obrázku předaného v URL parametru servírovacímu skriptu je vybrána příslušná definice <je:secureImgDownload>
, poté jsou nezávisle na sobě vyhodnocena všechna pravidla <je:secureRule>
v ní obsažená. Nabydou-li všechna hodnoty true
, je obrázek naservírován. V opačném případě je přístup zamítnut. Vyhodnocování pravidel <je:secureRule>
je tedy řízeno pomocí logického součinu (operace AND
).
Jednotlivým controlům <je:secureRule>
je předána aktuální kontejnerová proměnná (viz Kontejnerování). Tato proměnná je získána podle místa, kde se nachází odkaz vedoucí na skript.
Příklad
Kompletní příklad je uveden v článku Zabezpečení před neoprávněným přístupem k souboru nebo obrázku.