Control slouží ke konstrukci servírovacího skriptu pro soubory uložené v zabezpečených složkách SecurePaths. Control se umísťuje do samostatného .aspx souboru (pojmenovaného typicky fileGet.aspx, get.aspx apod.). Klientský požadavek na zabezpečený soubor je zpracován tak, že skript napřed vyhodnotí pravidla <je:secureRule> uvnitř <je:secureFileDownload> a na základě tohoto vyhodnocení soubor poskytne nebo znepřístupní.
<je:secureFileDownload runat="server" type="PrivateSection.file">
<je:secureRule runat="server" visibleFor="privateSection.allowed" />
<je:secureRule runat="server" visibleFor="globalAccess.files" />
</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:secureImgDownload>) a žádné další. Obvykle se v jednom souboru uvádí pravidla pro všechny zabezpečené soubory. Jeden servírovací skript se tak postará o všechny zabezpečené soubory na webu. V takovém případě je controlů <je:secureFileDownload> v .aspx souboru uvedeno více za sebou.
Takto zabezpečený soubor je dostupný pod URL servírovacího skriptu, v jehož parametru se předává ID souboru. Toto provádí JellyPot zcela transparentně pro všechny soubory (tj. pole typů <File>, <FileCollection>), které mají ve své deklaraci v Site.config uveden atribut securePath.
Atributy
field někdy povinný [název pole]
Jméno pole typu
<File>nebo<FileCollection>, jehož obsah je skriptem poskytován. Zadává se absolutně, v případě kolekcí bez indexu prvků – napříkladprivateArticleCol.file. Nelze kombinovat s atributemtype.type někdy povinný [cesta k poli konkrétního typu]
Jméno typu a jeho pole typu
<File>nebo<FileCollection>, jehož obsah je skriptem poskytován – napříkladPrivateArticleCol.file. Nelze kombinovat s atributemfield.
Vyhodnocení oprávnění uživatele
Při požadavku na soubor servírovací skript vždy ověří definovaná pravidla <je:secureFileDownload> v něm obsažená. Podle identifikátoru souboru předaného v URL parametru servírovacímu skriptu je vybrána příslušná definice <je:secureFileDownload>, poté jsou nezávisle na sobě vyhodnocena všechna pravidla <je:secureRule> v ní obsažená. Nabydou-li všechna hodnoty true, je soubor 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.