Min kode ser således ud: <html> <head> <title>Login</title> </head> <body> <% If RTrim(request.form("login")) = "test" AND RTrim(request.form("password")) = "test" Then
"Directory Listing Denied This Virtual Directory does not allow contents to be listed"
opstår når man skriver "/" og ikke skriver filnavn efter "/".. din server er indstillet til ikke at vis filer og mapper i den mappe du skriver.. sikkerhedssindstilling..
Jeg er igang med at lave et download script der når man f.e.k.s. går ind i download.asp?fil=hej.zip så chekker den om login seesion er "JA" eller "NEJ"...
Response.Cookies("downloadfile").Path = "/download" %> Filen downloades nu ! <% If Session("login") <> "JA" Then Response.Redirect "formular.asp" End if
If Session("login") <> "NEJ" Then Response.AddHeader "Refresh", "0;URL='filer/" & Request.Querystring("fil") & "'" End If %>
jeg prøvede lige at sætte redirect tiden ned så jeg kunne nå at se hvad der stod, og der stod på den tomme side: Response.write "*" & Request.Querystring("fil") & "*"
Min test gør at den ikke redirecter. Dit problem er, at der ikke kommer til at stå "?fil=test.exe" (test.exe er bare et eksempel). Hvis der ikke står noget efter "fil=", vil der være fejl.
Jeg tror at du blander 2 ting sammen. Du skal bruge følgende: #1 En login side. #2 En download side.
På #1 logger man ind, og Session("login") sættes til "JA". På #2 checker den om Session("login") er lig "JA". Hvis det er, sendes man videre. Hvis ikke, skal man sendes tilbage til #1.
tjaaa... 1. Jeg trykker på et link : <a href="download.asp?fil=test.exe 2. Download.asp checker om man tidligere har logget på... a. hvis ja redirect til test.exe b. hvis nej redirect til formular.asp (samtidig skal den gemme en cookie om hvorfor en fil man vil downloade... 3. man logger ind og session bliver sat til "JA" 4. man kommer ind på siden login.asp som straks redirect'er til filen (som vi har gemt i en cookie...)
Jeg ville normalt gøre det sådan her: 1. login.asp: Hvis korrekt, Session("login") = "JA", Ellers Session("login") = "NEJ" 2. side.asp: På en side findes <a href="download.asp?fil=test.exe">download test.exe</a> 3. downoad.asp: hvis JA -> download fil, Hvis NEJ -> login.asp?ref=<%siden man kom fra%>
ikke helt... 1. side.asp: På en side findes <a href="download.asp?fil=test.exe">download test.exe</a> 2. Download.asp: hvis JA -> download fil, Hvis NEJ -> login.asp?ref=<%Kommer man til der hvor man logger ind%> 3. Man logger ind og så downloader den fil og sætter session til ja
Response.Cookies("downloadfile").Path = "http://frip.dk/coldice/download" %> Filen downloades nu ! <% If Session("login") <> "JA" Then Response.Redirect "formular.asp" End if
If Session("login") <> "NEJ" Then Response.AddHeader "Refresh", "0;URL='filer/" & Request.Querystring("fil") & "'" End If %>
login.asp - siden hvor man logger ind logout.asp - siden hvor man logger ud download.asp - siden der downloader filen protect.asp - siden der sætter betingelserne for download af filer
*** LOGIN.ASP:
<% Option Explicit ' Bør altid bruges! ' Hvis Option Explicit bruges, SKAL ALLE variablerne defineres/dimmes! ' På den måde undgår man stavefejl.
' Check - Har brugeren klikket på Send-knappen?: if request.servervariables("request_method") = "POST" then ' Ja, brugeren har indstastet brugernavn/kodeord, og der skal valideres:
' Check - Er brugernavn & kodeord korrekte?: if request.form("username") = "test" and request.form("password") = "test" then
' Ja, brugernavn & kodeord er korrekte. Sæt cookien "login" til "JA" Response.Cookies("data")("login") = "JA"
' Check - Hvis der står noget i "fil", dvs brugeren har prøvet på at download en fil, uden at være logget ind? ' ja, download filen: if request.querystring("fil") <> "" then Response.AddHeader "Refresh", "0;URL=filer/" & Request.Querystring("fil")
' Nej, brugeren har ikke prøvet på at download en fil. Derfor skal brugeren have at vide at han/hun nu er logget ind: %>
Du er nu logget ind.
<% ' Nej, brugernavn/kodeord er forkert!. Sæt cookien "login" til "NEJ" else Response.Cookies("data")("login") = "NEJ"
' Giv brugeren en fejlmeddelelse: Response.write "Brugernavn eller kodeord er forkert!"
' ved at skrive "brugernavn eller kodeord" ("eller"), ' undgår man at fortælle brugeren at han har fundet et gyldig brugernavn. På den måde ' kan man øge sikkerheden. end if
else
' brugeren er lige gået ind på siden, og har derfor IKKE skrevet brugernavn/kodeord og klikket på Send-knappen: %>
Du er nu logget ud. Gå til <a href="index.asp">Forsiden</a>
*********************************************
*** DOWNLOAD.ASP:
<% ' Sæt filnavnet i cookien: Response.Cookies("data")("fil") = Request.Querystring("fil")
' Inkluder beskyttelses-siden, som kan rettes til at kontrollere flere betingelse: %>
<!-- #include file="protect.asp" -->
<% ' Check - Er brugeren logget ind? if Request.Cookies("data")("login") = "JA" then
' Ja, brugeren er logget ind -> Download fil: Response.AddHeader "Refresh", "0;URL=filer/" & Request.Querystring("fil") end if %>
*********************************************
*** PROTECT.ASP:
<% ' Denne side kan rettes, så man kan teste/checke flere kombinationer
' Check - Er man logget ind? if Request.Cookies("data")("login") <> "JA" then ' Hvis ikke, sendes man til "login.asp?fil=NAVNET_PÅ_DEN_FIL_MAN_VIL_DOWNLOAD:" response.redirect "login.asp?fil=" & Request.Cookies("data")("fil") end if %>
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.