2014-10-14 4 views
5

ich die Modelle in spezifisches Projekt getrennt habeAutorisieren Attribut funktioniert nicht MVC 5

Danach MVC Standard [autorisiert] Attribut nicht

in meiner Anwendung zu arbeiten, wenn ich versuche, um die Anwendung anmelden es das nicht anmelden ist Anwendung noch wird auf die spezifische Seite umleitet

+2

Konnten Sie etwas Code bekannt geben. Es ist schwer herauszufinden, was ohne es falsch ist. – Gjohn

+0

Wenn das Attribut authorize in controller vornimmt, tut es einfach nichts, wenn ich das Attribut entferne. Ich richte mich nach der Umstrukturierung der Lösung, die das Modell vom Hauptprojekt trennt, in ein separates Projekt –

Antwort

4

haben Sie so etwas wie dieses

<authentication mode="Forms"> 
<forms loginUrl="~/Account/Login" timeout="2880" /> 
</authentication> 

in Ihrer web.config haben?

+5

hilft nicht – CRice

0

Ich hatte das gleiche Problem mit Authorize funktioniert nicht. Zuerst dachte ich, es wäre der Code. Aber alles hat gepasst - es hat ohne Fehler gebaut. Ich habe dann meine Dev-Maschine neu gestartet und sie hat angefangen zu arbeiten. Es funktionierte das erste Mal, dann hatte das gleiche Problem damit nicht funktioniert. Denken Sie daran, dass der Wert aus dem ersten Zyklus gespeichert und nicht gelöscht werden muss. (nur eine Theorie)

+3

Das beantwortet die Frage nicht wirklich und sollte wohl als Kommentar gepostet werden. – ZygD

0

Ich bin gerade in dieses Problem heute gerannt und wollte meine Lösung für jeden, der auch in diesen Fehler geraten könnte, hinzufügen. Nichts anderes hat für mich funktioniert. Ich hatte kürzlich ein Installationsprogramm für eines der anderen Projekte in dieser Lösung ausgeführt, und ich muss das Kontrollkästchen "Erstellen" in Configuration Manager deaktiviert haben.

Mit dieser Option wurde nicht neu erstellt, als ich das [Authorize] -Tag hinzufügte, obwohl ich Änderungen an der cshtml-Seite vorgenommen hatte, die auftauchten. Ich habe es nicht herausgefunden, bis ich einen Haltepunkt in meine Controller-Aktion gesetzt habe und bemerkt habe, dass ich es nie getroffen habe. Ich habe sogar versucht, null vom Controller zurückzugeben, und die Anwendung navigierte immer noch auf die neue Seite.

Kurz gesagt, überprüfen Sie, ob Sie dieses Projekt in Configuration Manager erstellen, das hat für mich funktioniert.

11

Überprüfen Sie, ob Sie das Autorisierungsmodul für Formulare entfernt haben. Einige der neuen Vorlagen entfernen standardmäßig die Formularautorisierung. Wenn es entfernt wurde, kommentieren Sie es aus. Es wird in Ihrer web.config wie folgt aussehen:

<remove name="FormsAuthentication" /> 

ich diese Frage gefunden für einen sehr ähnlichen Fehler suchen, so dass ich dachte, es wäre gut, meine Lösung zu veröffentlichen.

+1

Ich habe gerade stundenlang versucht herauszufinden, warum meine Autorin nicht funktioniert hat ... das war es ... war innerhalb des Tags ... sooo frustrierend ... –

+0

Arbeitete für mich nach zwei Stunden Kampf. –

0

Für mich, ich brauchte die folgende appSetting

<add key="owin:AutomaticAppStartup" value="false"/> 

zu

<add key="owin:AutomaticAppStartup" value="true"/> 
1

Für mich Es hat eine sehr triviale Fehler zu setzen. Ich war noch authentifiziert. Die Owin-Authentifizierung bleibt der angemeldete Benutzer trotz des Schließens des Browsers. Ich muss abmelden mit folgendem Code:

public void IdentitySignout() { 
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie, 
    DefaultAuthenticationTypes.ExternalCookie); 
} 
0

Für mich habe ich gerade die Cookies von Google Chrome gelöscht und es hat funktioniert.

Verwandte Themen