webForumDet fria alternativet

Hämta filer som ej är publicerade

.NET

9 svar · 599 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

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.

Medlem sedan juni 2009920 inlägg
#2

Lösenordsskydda?

Medlem sedan feb. 20034 441 inlägg
#3

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...

Medlem sedan juni 2009920 inlägg
#4

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.

Medlem sedan sep. 2005673 inlägg
#5

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?

Medlem sedan dec. 20014 239 inlägg
#6

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

Medlem sedan sep. 2005673 inlägg
#7

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!

Medlem sedan aug. 20039 340 inlägg
#8

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/

Medlem sedan sep. 2005673 inlägg
#9

Det är en win 2008 server och IIS 7 och förstås en asp.net-applikation eftersom jag är här. :)

Medlem sedan nov. 20011 551 inlägg
#10

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)

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