webForumDet fria alternativet

Begränsa access till bilder

.NET

4 svar · 480 visningar · startad av haagel

Medlem sedan feb. 2006134 inlägg
Frågan#1

Jag har gjort en liten webbapplikation där besökare måste logga in för att komma åt vissa sidor. Detta är gjort på enklaste sätt med det inbyggda "FormsAuthentication". De sidor som kräver login är placerade i en egen mapp som är skyddad. Dessa sidorna innehåller bilder som jag också vill ska skyddas. Alltså, även om besökaren känner till den fullständiga url:en till en bild så ska den inte kunna nås ifall inte användaren loggar in. Dessa bilder ligger i en undermapp till den mapp som redan skyddas.

Vid tester upptäckte jag till min glädje att även bilderna skyddades automatiskt. Om jag försöker skriva in url:en till en bild i min webbläsare så skickas jag ändå automatiskt till inloggningssidan om jag inte är inloggad. Precis som jag vill ha det.

MEN...
När jag lägger upp samma kod på mitt webbhotell så fungerar det inte längre. Sidorna skyddas som förrut, men inte bilderna.

Jag har en känsla av att det här har att göra med nån inställning i webbservern. Kanske att bilderna levereras direkt av webbservern utan att gå via ASP.NET? Kan jag i sådana fall ändra på det i nån web.config? Jag har inte möjlighet att göra några ändringar direkt i webbservern.

Eller så är felet nått helt annat...

Nån som har en lösning? :)

Medlem sedan sep. 2004828 inlägg
#2

Kör du IIS7 så kan du skydda även bilder.

Personligen kör jag med en Image.aspx som streamar bilden.

Medlem sedan feb. 2006134 inlägg
#3

Kör du IIS7 så kan du skydda även bilder.

Som sagt, jag har ingen möjlighet att meka med webbservern.

Personligen kör jag med en Image.aspx som streamar bilden.

Jag har funderat i liknande banor, men att köra med en HTTPHandler istället. Är det ett lämpligt sätt eller finns det ett bättre/lättare sätt?

Medlem sedan sep. 2004828 inlägg
#4

Kör du IIS7 så meckar du i web.config bara, så det var därför jag frågade.

En HTTPHandler skulle vara snyggare (tycker jag) men jag hade inte den kompetensen när min sajt byggdes, och det fungerar precis lika bra på mitt sätt.

Det viktiga är att se till att du inte har publik access till mappen där bilderna ligger. Detta kan du inte styra i web.config (om du inte kör IIS7), utan måste göra på servern. Många webbhotell (antar att du har hotell eftersom du inte kan mecka) har mappar utanför wwwroot där du kan lägga liknande saker.

Medlem sedan okt. 20041 556 inlägg
#5

Brukar finnas en mapp som heter DATA eller likande.

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)