Troels Jensen <tjREMOVE@THIStroelsweb.dk> wrote:
> Jeg har lavet et billedgalleri i .asp, hvor siden med thumbnails
> er beskyttet med adgangskode.
Jeg formoder, du benytter session-variable til at håndtere logins?
> Jeg arbejder nu på en løsning, hvor thumbnails linker til et andet
> script (ex: /visfoto.asp?path=/billeder/foto1.jpg), som så
> afkræver adgangskode og derefter viser billedet. Problemet er
> bare, at stien bliver gemt i browseren.
Jeg ved ikke, hvordan det gøres tilsvarende i ASP, men i PHP har du
mulighed for at at lave noget som det her:
<img src="getimage.php?file=/images/foto.jpg" ... />
Hvor getimage.php *henter* (ej linker) billedet og returnerer det
sammen med de rigtige headers.
Et sådan script kunne nemt udvides med samme loginfeature, som selve
siden med thumbnails. Er brugeren logget ind vises billedet. Hvis
ikke, kan der returneres et fejlbillede.
Skitseret:
<?php
....
if (loggedIn()) {
$filename = $_GET['file'];
header("Content-Type: image/jpeg");
header("Content-Length: " . filesize($filename));
readfile($filename);
}
else {
$filename = "/images/notloggedin.jpg";
header("Content-Type: image/jpeg");
header("Content-Length: " . filesize($filename));
readfile($filename);
}
?>
> Jeg bruger følgende
> metatags, men det afhjælper ikke problemet:
>
> <META HTTP-EQUIV="expires" CONTENT="-1">
> <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must
> revalidate"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
De har kun betydning for om billederne gemmes i cachen til fremtidig
brug - iøvrigt behøver klienterne ikke at respektere sådan
meta-information, svjv. De forhindrer altså ikke brugeren at gå ind
på en given adresse.
> 1) Kan jeg undgå, at stien bliver lagret i computerens Temporary
> Internet Files (altså ikke bare caching)?
Nej. Når brugeren ser billedet i sin browser, er det i virkeligheden
en kopi, der er hentet ned på computeren.
> 2) Kender I en løsning, så selve billedfilerne kan beskyttes med
> password, uden at man skal gå i krig med udbyderen (dvs. ved hjælp
> af et script el.)?
Jeg har forklaret hovedtrækkene ovenfor. Hvordan det skal gøres i
ASP kan andre fortælle dig i den dertil beregnede gruppe:
dk.edb.internet.webdesign.serverside.asp, som jeg har sat FUT til
(svar på dette indlæg havne i den gruppe).
--
Anders Thorsen Holm, BSc i datalogi-multimedier.
Jeg søger fuldtidsjob i eller nær Århus - gerne studierelevant,
men ingen betingelse. Læs mit CV:
http://www.thorsenholm.dk/cv/