2017-02-24 5 views
0

Ich habe ein Problem, das mich verrückt macht. Ich habe ein ASP.Net-Projekt in Visual Studio 2015 mit einer vordefinierten Vorlage erstellt. Das Zielframework ist 4.5ASP.Net Formular Authentifizierung 401.2 Nicht autorisiert

Als ich Formularauthentifizierung hinzufügte, war alles, was ich bekam, eine Nachricht 401.2.

So habe ich die Anwendung konfiguriert: Ich habe eine Login.aspx-Seite erstellt. Dann in der web.config habe ich die folgenden Eigenschaften im Abschnitt system.web:

<authentication mode="Forms"> 
     <forms loginUrl="Login.aspx" 
      protection="All" 
      timeout="30" 
      name=".ASPXAUTH" 
      path="/" 
      defaultUrl="Default.aspx" /> 
    </authentication> 
    <authorization> 
     <deny users="?"/> 
     <allow users="*"/> 
    </authorization> 

ich einige andere Beiträge geprüft, aber keiner half mir aus so weit:

Dieses nicht anwendbar ist: Access is Denied - 401.2: Unauthorized Error

Dieser sah vielversprechend aus, aber keine Zigarre für meine App: .NET Forms Authentication using IIS8.0 Express (vs2013) - 401.2.: Unauthorized: Logon failed due to server configuration

Dieser hat mir denken: https://stackoverflow.com/a/35925125/980201

Wenn ich die IIS (Express) Logfile überprüfen, ist es das, was ich bekommen:

Wo haben die ASPX in Login.aspx gehen?

Also habe ich alle FriendlyURL Zeug entfernt, aber kein Glück wieder. In einem letzten Versuch, änderte ich meine config:

<forms loginUrl="LoginXXX.aspx" 

Und das ist, was ich habe:

2017-02-24 19:45:37 ::1 GET/... - 302 
2017-02-24 19:45:37 ::1 GET /LoginXXX.aspx ReturnUrl=%2f 57745 - 404 

Warum statt login.aspx einzuloggen ist .Net umleiten? Irgendwelche anderen Gedanken zu meiner App und Konfigurationsdatei?

Vielen Dank!

Grüße Roeland

bearbeiten Einige unerwartete Wendung der Ereignisse: Wenn ich das Debuggen in VS mit Login.aspx.cs als aktuelle Registerkarte zu starten, es funktioniert nicht. Wenn ich das Debuggen von Default.aspx.cs starte, funktioniert es. Die Start Aktion meines Projekts auf Default.aspx löst das Problem. Wenn die Site jedoch ausgeführt wird, führt das Ändern der URL in login.aspx zu einem erneuten Fehler.

Warum? Es macht für mich keinen Sinn, dass nur Seiten, die jeder sehen darf, nicht direkt navigiert werden können.

+0

Haben Sie überprüft, ob die anonyme Authentifizierung in IIS aktiviert ist? –

+0

Hallo Ghini, ja. Dies ist in der Datei applicationhost.config erlaubt. – Roeland

Antwort

0

Wenn Sie Visual Studio zum Erstellen eines Standardprojekts verwendet haben, mit dem Sie dann die Formularauthentifizierung aktiviert haben, ist die Formularauthentifizierung standardmäßig deaktiviert, da Identity Framework der Standardauthentifizierungsmechanismus in VS 2015 ist.

Suchen Sie nach dem diesem Eintrag in web.config

<system.webServer> 
    <modules> 
     <remove name="FormsAuthentication" /> 
    </modules> 
</system.webServer> 

und entfernen Sie die "entfernen".

+0

Hallo Erik, dieser Eintrag ist nicht in meiner web.config – Roeland

Verwandte Themen