<je:secureImgDownload>

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 na debug, viz RunMode.)

  • 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říklad privateArticleCol.img. Nelze kombinovat s atributem type.

  • 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říklad PrivateArticleCol.img. Nelze kombinovat s atributem field.

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.

Připomínky a postřehy

Máte-li nějakou připomínku, dobrý nápad nebo jste našli v dokumentaci chybu, rádi od vás uslyšíme.