2017-03-07 4 views
0

Ich habe zwei Domänen in MVC erstellt.Authentifizierung und Sicherheit für ASP. NET statische Dateien und Ordner

1.User Domain (z. B. localhost:8000) 2.Customer Domain (z. B. localhost:5046)

Kunde anmelden kann, dann kann er Dateien hochladen wie Image, doc, pdf etc. Die Dateien werden hochgeladen ~/Documents/ Ordner im Wurzelverzeichnis localhost:5046

Das Problem: Wenn ich zu meinem Browser gehe und diese URL localhost:5046/Documents/image.jpg drücke, kann ich tatsächlich auf Datei zugreifen, ob ich authentifiziert worden bin oder nicht.

Was ich brauche: Ich muss den Dateizugriff über die URL vom Browser blockieren. Aber ich soll die Datei aus dem Benutzerdomäne localhost:8000 durch das Schreiben so etwas wie dies unter

WebClient Client = new WebClient(); 
resposeData = Client.DownloadData("localhost:5046/Documents/image.jpg"); 

Jede Idee zugreifen kann und Vorschlag würde geschätzt.

+0

Was gibt es in Ihrem routeconfig, fügen Sie das auch hinzu? – Anil

Antwort

0

Im gleichen Szenario führe ich folgende Überprüfungen durch
1.] Es wird Server-Adresse zurückgeben, wenn es von Hosted Server ist, umleiten auf eine andere Seite mit einer Nachricht.

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 

2.] Überprüfen Sie, ob Benutzer

authentifiziert
System.Web.HttpContext.Current.User.Identity.IsAuthenticated 
0

das Autorisieren in Web-Config.

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <authorization> 
     <deny users="?" /> 
     </authorization> 
    </system.web> 
    <system.webServer> 
    <handlers> 
     <add name="pdfauthentication" verb="*" 
     path="*.pdf" 
     type="System.Web.StaticFileHandler" 
     resourceType="Unspecified" /> 
    </handlers> 
    </system.webServer> 
</configuration> 

Jetzt können Sie einen Handler pdfauthentication implementieren, in dem Sie den Zugriff auf Server-URL haben und können Ihre eigenen Authentifizierungslogik implementieren. Diese Lösung wird diskutiert here

Verwandte Themen