"Jens U. K." <1jk2@3bsopatent4.dk> wrote in message
news:oif3c.1569$fC4.924@news.get2net.dk...
> "J Hansen" <jimmyh hansen> wrote in message
> news:8dep40ts1b1p41vvk7l5v5li3e3ttfgu0h@4ax.com...
> > On Mon, 8 Mar 2004 17:11:50 +0100, "Jens U. K." <1jk2@3bsopatent4.dk>
> > wrote:
[...]
> --- kode start ---
> <% set stmData = Server.CreateObject("ADODB.Stream")
>  strFilePath = server.MapPath("/sikret mappe") & "\" &
> Request.QueryString("Billedenavn") & ".jpg"
>  stmData.Open
>  stmdata.Type = 1
>  stmdata.LoadFromFile strFilePath
>  Response.ContentType = "image/jpeg"
>  Response.BinaryWrite stmData.Read
>  stmData.Close
>  set stmData = nothing
>  Response.End %>
> --- kode slut ----
>
> I ovenstående kode fremkommer en fejl hvis filen ikke eksisterer, eller
> hvis scriptet ikke har læserettigheder til undermappen/filen.
>
> Jeg leder efter en løsning hvor serverside-scriptet får ekstra
rettigheder
> til at læse fra en undermappe på mit site. Den samme undermappe må ikke
> kunne tilgås fra en browserklient.
Et alternativ, der godt nok er besværligt, men som virker er at tilføje
"<!--" i starten af alle jpg-filerne med en binær editor el. lign.
Derefter omdøbes filen til endelsen asp. Scriptet ovenover ændres til at
kigge efter asp i stedet og der indsættes en stmdata.Read(4) umiddelbart
inden stmdata.read. Hvis nogen tilgår filen via den "direkte" url, vil de
måske få en asp-fejl om at en kommentar manglede en slutkommentar, men de
vil aldrig få fat i selve filen. Jeg vil tillade mig at vise en "pænt"
redigeret version og forbeholde mig rettighederne til ideen, hvis ikke en
anden altså allerede har fundet på det 

 Nedenstående kode virker ikke
kun for jpg.-filer! Hvis man f.eks. vil beskytte en pdf.-fil så benyttes
"application/pdf" bare som FileType. Det kræver selvfølgelig at en
pdf.-fil har fået tilføjet "<!--" i starten og at endelsen er ændret til
asp.
--- start kode ---
<%@ Language=VBScript %>
<% Option Explicit %>
<!-- #INCLUDE FILE="IsAuth.asp" -->
<%
 REM Made by: /Jens Ulrik.
 REM Please include this remark if
 REM code is used in its whole or partly.
 REM No support or warranty given.
 dim strFilePath
 dim stmData
 set stmData = Server.CreateObject("ADODB.Stream")
 strFilePath = server.MapPath("/SecuredFiles") & "\" & _
  Replace(Request.QueryString("FileName"),"\","") & ".asp"
 stmData.Open
 stmdata.Type = 1 'binary
 stmdata.LoadFromFile strFilePath
 Response.ContentType = Request.QueryString("FileType") 'ex. "image/jpeg"
 stmdata.Read(4)
 Response.BinaryWrite stmData.Read
 stmData.Close
 set stmData = nothing
 Response.End
%>
--- slut kode ---
"Isauth.asp" indeholder sædvanlig brugervalideringskode evfter eget valg.
PS: Der er ikke andre der i mellemtiden har udtænkt andre smartere
løsninger?
/Jens Ulrik