29. maj 2019 - 13:50Der er
12 kommentarer og 2 løsninger
Begræns adgang til filer i bestemt mappe
Hej, Jeg har brug for at begrænse adgang til en mappe på et website for brugere som ikke er logget ind i websitet. Jeg har lavet en web.config fil til at ligge i mappen, hvor jeg giver adgang til bestemte grupper, og hvis man ikke er logget ind, skal man ikke kunne hverken se eller åbne de filer der ligger i mappen. Det virker tildels også fint, bortset fra at hvis man kender navnet på det dokument man vil åbne, så kan man godt få adgang til at læse det i browseren, ved at taste hele url'en. Men hvis man bare taster mappe navnet, vil man blive nægtet adgang. Så hvordan kan jeg lukke adgang til filerne, hvis man ikke er logget ind? På forhånd tak
Det er kun .docx, PDF osv der ligger i mappen. Min web.config fil ser sådan ud: <?xml version="1.0"?> <configuration> <system.web> <authorization> <allow roles="admin"/> <allow roles="user"/> <deny users="?" /> </authorization> </system.web> </configuration> Jeg har prøvet at lave en location="mappenavn", men det virkede ikke rigtigt. Der var flere eksempler på nettet. En hvor location stod som en selvstændig linie, men også en hvor den havde indholdet under sig <location path=xxxx><system.web>.....</location> Men den fik serveren til at fejle. Den hvor den stod som en selvstændig linie under <system.web> fejlede ikke. Og virkede fint, hvis man altså kun tastede mappe navnet. Men hvis man taster hele urlen til dokumentet, så kan man sagtens åbne det, selvom det ligger i den mappe man altså ikke har adgang til.
Jeg har en mistanke om at problemet er at de filer serves direkte af IIS udenom ASP.NET - og web.config bruges kun af ASP.NET.
Hvis det er rigtigt så er der 2 muligeheder: 1) Få konfigureret IIS til at goere det rigtige 2) Flytte filerne udenfor IIS traet og have en download.ashx i directory som styrer adgangen til disse filer
Jeg tænkte lidt i den sidste retning. Kunne man lave et eller andet som du skriver, med en .net fil, som styrer visningen, men hvor det der står i urlen er en anden sti end den hvor dokumentet ligger?
Jeg tænkte bare at der måske var en løsning hvor man kunne lave lidt ala en urlrewrite... Bare et quickfix. Jeg må se om jeg kan finde et eksempel på en ashx fil
Nu har jeg prøvet at finde et eksempel, og det er tilsyneladende ikke så nemt. Jeg fandt et, men hvor det var en alm. .cs fil, men hvor man skulle ændre en hel del i config filen. Og det virkede ikke rigtigt. Hvis jeg lavede eksemplet, kom der en fejl, med at serveren ikke kunne loade filen. Så det opgav jeg. Men jeg synes det er lidt mærkeligt at der ikke er nogen der har siddet med samme problem? Du skulle vel ikke ligge inde med noget kode til ashx filen?
Hej igen, Jeg tror dælme jeg fik det til at virke. Jeg skal lige rette det lidt til. Men jeg tror det virker. Giver lige en tilbagemelding. God fornøjelse med græsplænen :-)
Tak for din kode. Jeg nåede ikke at skrive, inden du havde lagt det op. Men jeg fik det til at virke. Jeg fandt langt om længe noget kode der kunne bruges. Skulle jo så lige spores ind på hvad det var jeg skulle have. Jeg kigger din kode igennem. Men tusind tak for hjælpen. Jeg ville gerne give point, men det er man gået bort fra?? Det er lang tid siden jeg har været på eksperten :-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.