Ich mache ein kleines Familienfotoalbum mit der Absicht, es vielleicht später anderen Leuten zu öffnen, um Bilder später zu speichern.
Ich lade die Bilder in ~ \ images hoch, ändere sie dann dreimal (Normalansicht ... Miniaturansicht und eine kleine Version) und verschiebe sie nach ~ \ images \ thumbs, ~ \ images \ normal, ~ \ images \ klein und dann das Original nach ~ \ images \ original verschieben.
Wenn ein Benutzer einen Dateinamen kennt, kann er direkt zu Ссылка gelangen.
Ich würde es vorziehen, dass sie ihnen nicht zur Verfügung stehen.
Also, gibt es eine Möglichkeit, das ImageUrl des asp: Image-Steuerelements zu ändern, um eher von einem nicht zugänglichen Ordner zu lesen? Und wäre das ein Performance-Hit? Ich denke an etwas wie (nicht sicher, ob es möglich ist) das Bild in s Steam lesen, und irgendwie die ImageUrl oder was auch immer, aus dem Stream zu lesen?
Ich hoffe, Sie können helfen.
Die Antwort ist ja. Sie können ein spezielles Format von img src verwenden, das das Bild direkt in die Seite einbindet.
Anstelle der URL würden Sie das folgende Format verwenden:
%Vor%wo Daten den Mime-Typ Ihres Bildes und die ... nach base64 angeben, ist der Base64-kodierte Inhalt des Bildes.
Dieses Verhalten wird von diesem RFC definiert.
Hier ist ein Beispiel:
Im HTML:
%Vor%Im Code-Behind:
%Vor%Darf ich vorschlagen, etwas wie:
zu betrachtenSession["user"] = youruser;
Jedes Objekt, das Sie in Ihrer Sitzungsvariablen speichern, enthält eine gültige youruser.userID, die aus einer Datenbank abgerufen wird / li>
(ungetesteter Code)
%Vor%Dies sollte den Zugriff für alle Personen außer dem korrekten Benutzer des jeweiligen "images" -Ordners effektiv verhindern, selbst wenn sie den direkten Pfad der Bilddateien herausfinden.
Wenn jemand irgendwelche Möglichkeiten hat, diese Methode zu verbessern, können Sie gerne kommentieren, da ich diese Idee bald in einer Site implementieren werde und zweite Meinungen sind immer willkommen.