hiddenSegment   zodpovězená otázka

ASP.NET WebForms, ASP.NET MVC, ASP.NET/IIS

Dobrý deň. Používam ASP.NET 4.0 a mám niekolko účtov v zložke App_Data. Ukladám tam ale niektoré súbori ktoré chcem aby boli stiahnutelné (doc,txt). Skúsil som

<system.webServer>
    <security>
      <requestFiltering>
        <hiddenSegments>
          <remove segment="App_Data" />
        </hiddenSegments>
      </requestFiltering>
    </security>
  </system.webServer>

čo aj pomohlo ale pre všetky pod-zložky. Ked som skúsil :

<system.webServer>
    <security>
      <requestFiltering>
        <hiddenSegments>
          <remove segment="App_Data/Accounts/Upload" />
        </hiddenSegments>
      </requestFiltering>
    </security>
  </system.webServer>

Tak mi to nefunguje. Viete mi niekto poradiť ? +nepouživam vstavane účty a ich rules chcel by som to vyriešiť čistim kodom.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

ešte sa mi zdá že segmenty v machine.config su App_Data, App_Code atd...takže asi remove pre niečo ako "App_Data/Accounts/Upload" nema čo remove-nuť takže asi to chce uplnu zmenu.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Řešíte problém, který jste si vyrobil sám.

Proč soubory jednoduše nedáte do jiného adresáře, odkud stáhnout půjdou. Tohle nastavení na leckterém hostingu možná ani nepůjde změnit.

Případně můžete do projektu přidat GenericHandler.ashx, který si v QueryStringu přečte název souboru a ten soubor vypíše na výstup. Jen pozor, aby tam někdo neposlal parametr "../web.config".

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Máte pravdu. Chcel som miesto kde budú súbori stiahnutelné ale nie cez priamy link. Teda niečo ako súbori pre tých čo sú prihlásený. GenericHandler to rieši perfektne súbor z App_Data výpisal a všetko je kontrolovatelné cez kód môžem tam pred tím skontrolovať cookies, alebo či nieje v QueryStringu to čo tam byť nemá.

Funguje to perfektne pod Internet Explorer. Ale pod Google Chrome stahnutý súbor obsahuje obsah pôvodného súboru na stiahnutie ale názov je DownloadHandler.ashx a treba ho potom premenovať na súbor s koncovkou napr. .doc atd.. Viete mi poradiť s tímto ? použil som kód z internetu ak môžem dám sem link.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Už som nato prišiel. Ďakujem za pomoc, považujte toto vlákno za vyriešené.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jen pro úplnost:

Stačí přidat hlavičku Content-Disposition: attachment; filename=soubor.txt

context.Response.AddHeader("Content-Disposition", "attachment; filename=soubor.txt");

Že se to chovalo v IE korektně je spíš náhoda. Takhle to bude fungovat vždy a všude.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback