2016-07-13 10 views
0

Ich habe ein Webprojekt in ASP.NET übergeben. Es enthält einen Content Ordner mit einer index.html Datei. Im Moment können Leute zu mysite.com/content/index.html gehen. Es gab keine MVC-Controller in diesem Projekt (ich habe es nicht selbst gemacht).Formularauthentifizierung für Ordner funktioniert nicht

Ich möchte nicht, dass Leute direkt auf die HTML-Seite gehen. Ich habe eine Anmeldeseite im Stammverzeichnis meiner Site (also mysite.com), also möchte ich Benutzer dorthin umleiten, wenn sie nicht eingeloggt sind. Ich habe meinen eigenen HomeController mit einer Indexmethode erstellt. Ich habe ASP.NET Identity eingerichtet, um alle Anfragen an diese Methode zu autorisieren. Ich möchte die Formularauthentifizierung einrichten, um alle nicht autorisierten Anfragen an den Inhalt-Ordner und seinen Inhalt an/Home/Index (oder einfach die Website root /) umzuleiten.

ich mehr Antworten auf dieser Seite und an anderer Stelle gefunden haben, die ziemlich ähnlich sind: Im Web.config der Wurzel der Website, ich habe diesen Code:

<configuration> 
     <location path="~/Content"> 
     <system.web> 
      <authorization> 
       <deny users="?" /> 
      </authorization> 
     </system.web> 
     </location> 

    <!-- some other nodes --> 

    <system.web> 
     <authentication mode="Forms"> 
      <forms name=".ASPXAUTH" loginUrl="/" /> 
     </authentication> 
    </system.web> 
</configuration> 

Aber dies nicht funktioniert, Wenn ich zu mysite.com/content/index.html gehe, werde ich nicht zu mysite.com umgeleitet. Ich habe auch versucht, diese in verschiedenen web.config-Dateien zu teilen, wie in this Antwort beschrieben. Was mache ich falsch?

Antwort

1

MVC-Pipeline nicht mit statischen Inhalten (HTML).

Fügen Sie diese Zeile zu system.webServer serction in der web.config-Datei für Projekte hinzu.

<modules runAllManagedModulesForAllRequests="true"> 
+0

Arbeitete für mich! Vielen Dank, viele Antworten haben diesen Teil nicht erwähnt. – ohyeah

Verwandte Themen