Har nån ett bra och enkelt sätt att lösenordsskydda en hel mapp ?
Jag vill att flera användare ska kunna få tillgång till mappen samt att man inte skall komma åt någon av filerna även fast man vet filnamnet utan att logga in!
Har inte tillgång till cgi på denna server, men däremot asp..
Näpp. Det du talar om är HTTP-autenticering. I Apache löser man det enkelt med .htaccess-filer, men i IIS funkar det inte alls lika smidigt. IIS kan autenticera mot NTs användardatabas, men om du själv vill konfigurera tillgång, och lägga upp externa användare, måste ett ISAPI-filter installeras (vanligen AuthentiX).
Man kan skapa själva dialogrutan själv, men då måste du i alla fall ha ett skript som sköter den biten, och då har du tappat finessen att kunna låsa hela mappar.
Du kan juh göra som jag har gjort!
Först så skapar du en sida där man loggar in som du gör lättast med ett formulär med ett fält för användarnamn och ett för lösenord när du trycker på submit knappen så ska du ha följande kod på den sidan som dyker upp:
<% Session.Timeout = 180 %>
<%
Session("Logintries") = Session("Logintries") + 1
If Session("UserId")="" Then
'======================================================
' GLÖM INTE ATT ÄNDRA SÖKVÄGEN TILL DIN DATABAS
'======================================================
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "login"
SQLStmt = "SELECT * FROM Login Where Login = '" & FixaTecken(Request.Form("Login")) & "' AND Password = '" & FixaTecken(Request.Form("Password")) & "'"
Set RS = Connection.Execute(SQLStmt)
If RS.EOF Then
Response.Redirect("index.asp")
Else
Session("UserId") = RS("Id")
Session("E-post") = RS("epost")
Session("Login") = RS("Login")
Session("Password") = RS("Password")
Session("Logintries") = 0
RS.Close
Connection.Close
End If
End If
%>
På samma sida måste du även ha denna meta tagg:
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
För att få alla som skriver in adressen till det som är skyddat måste du skapa en fil som heter status.inc koden ser ut så här:
<%
If Session("UserId") = "" Then
Response.Redirect("index.asp")
End If
%>
index.asp byter du ut mot den sidan som du har inloggnings formuläret på.
För att det ska funka med status.inc så måste du inkludera den i alla dokumen som ska vara skyddade det gör du enklast med detta komando <!--#include file="status.inc"-->
Men visst går det att lagra bilder i en databas, kanske inte en jättebra lösning för stora system, men handlar det bara om några mb och ett begränsat antal användare borde det väl inte ställa till några problem?
Jag har löst det temporärt med att använda en mapp på mitt UNIXkonto som hänvisar till filer med mycket konstiga namn i en knepigt döpt mapp på NTservern :e
Sen tjatar jag på webhotellet med så vi får se vad dom hittar på..