Lösenordsskydda?
Hej! Hur gör man för att hämta filer från en mapp som ej är publicerad på internet? Vill alltså att det endast ska vara möjligt att hämta filerna i mappen när man är inloggad på en webbapplikation.
9 svar · 599 visningar · startad av inspiro
Hej! Hur gör man för att hämta filer från en mapp som ej är publicerad på internet? Vill alltså att det endast ska vara möjligt att hämta filerna i mappen när man är inloggad på en webbapplikation.
Lösenordsskydda?
Lägg alla filer utanför webrooten, t.ex. public_html. Indexera alla filer i en databas, tillsammans med ID och filnamn. När du hämtar en fil, hämtar du dess ID från databasen, kontrollerar så att filen finns och vilken filtyp det är, sen är det bara att läsa in den med ett script och streama ut i browsern.
/R Lovar att det finns hur mycket som helst om det här om du googlar...
Har programmerat en del i C# för Asp.Net, haft en del egna småprojekt samt några som gett en liten slant, men har lagt det lite på hyllan nu, för PHP. Tyckte det vart för bökigt helt enkelt. Men det är väldigt kul att programmera i. Satt och funderade lite på hur jag skulle lösa det här, och visste direkt hur jag skulle göra i PHP, men för Asp.Net vart det tvärstopp.
Hursomhelst, Micke har en väldigt bra lösning iallafall. Borde inte vara några problem att knacka ihop.
Databas är inte ett alternativ tyvärr, jag behöver skydda filerna direkt i mappen där de ligger och olika användare ska nå olika filer. Tänkte mig att själva applikationen på något sätt har fri tillgång till alla filer i mappen och sedan fixar jag på annat vis vilka filer som kan hämtas för en specifik användare. Går det?
Ja det går att låsa mappar till användare eller användargrupper i .NET 2
Detta styr du med hjälp av location i web.config och inloggning. Har för mig att du kan styra användarnamn och lösenord direkt i .config filen om så önskas.
Dock skulle jag rekommendera att du använder dig av en databas och "membership provider" eller vad som nu är aktuellt i nya .NET4
Hm, ok, kanske ska försöka lösa det med en databas ändå.
Filerna i mitt fall är png-bilder som ska kunna visas men alltså bara om man har rätt behörighet, förstår inte riktigt hur man tar en bild från en fysisk mapp som inte är publicerad på internet, gör bilderna i den mappen till en ström som sedan blir en bild igen i webbläsaren (man ska alltså inte ladda ner bilden utan den ska visas i webbläsaren).
Jupp, har googlat. :/ Om någon har en pedagogisk länk/kodsnutt så är jag mkt tacksam!
Du talar inte om vilken webbserver miljö som gäller. Om det är en Apache-server ("Linux") så kan .htaccess+.htpsswd vara ett alternativ. Då får besökaren upp en lösenordsprompt, och du kan lägga till flera användare.
Nyttiga länkar:
http://www.javascriptkit.com/howto/htaccess3.shtml
http://www.htaccesstools.com/htpasswd-generator/
Det är en win 2008 server och IIS 7 och förstås en asp.net-applikation eftersom jag är här. :)
Hinner inte skriva nåt vettigt svar, men... ska du ligga publikt på ett webhotell måste du kolla om du har möjlighet att påverka sitens rättigheter, om du ska låta appen läsa saker utanför webrooten måste du ha minst medium trust och t ex loopia ger inte dig det. (vet av erfarenhet då jag manipulerade bilder samt vattenmärkte nya versioner etc för nåt år sen)