1

Ich arbeite an einem Asp.Net MVC 5 Projekt mit einer eigenen individuellen Benutzerkonto Vorlage. Ich setze Rollen für Benutzer. Ich habe nur bestimmte Rollen für bestimmte Aktionsmethoden autorisiert. Aber das Problem ist, selbst wenn ich mich eingeloggt habe, mit einer Rolle, die keine Zugriffsrechte für eine bestimmte Aktionsmethode hat (Beispiel die Methode delete), navigiert sie mich zur Anmeldeseite. So kann ich mich mit einem anderen Benutzer anmelden, während ich bereits angemeldet bin, und das ergibt keinen Sinn. Warum behandelt es Autorisierungsfilter auf diese Weise ?!Wie stelle ich eine Seite für die Zugriffsverweigerung in Asp.Net MVC 5 ein?

Also, wie man es anstatt auf die Login-Seite zu navigieren, um einen benutzerdefinierten Fehler zu geben, um eine Zugriff verweigert Ansicht anzuzeigen?

Ich versuche, dies aus den Antworten von ähnlichen Fragen zu lösen, aber sie bringen mich nirgends!

+0

Weiß nicht, ob Sie das gesehen haben [Antwort] (http://stackoverflow.com/a/977112/829997), aber es hat mir geholfen. [This] (http://dotnetdevdude.com/Blog/2011/11/21/ASPNETMVCRedirectToCustomPageWhenUserIsNotAuthorized.aspx) war ein weiterer hilfreicher –

+0

dieser einen, den ich nicht gefunden habe. Ich überprüfe die Antwort und den anderen Link – Arianit

+0

@LeeHarris, wenn ich versuche, dem Link zu folgen, bekomme ich ein anderes Problem, ein Laufzeitfehler: 'Server Fehler in '/' Application.' Beschreibung: Eine Ausnahme ist bei der Bearbeitung Ihrer Anfrage aufgetreten . Darüber hinaus trat eine weitere Ausnahme beim Ausführen der benutzerdefinierten Fehlerseite für die erste Ausnahme auf. Die Anfrage wurde beendet.und der URL Pfad ist wie folgt: Shared/Error? Aspxerrorpath =/Reports/delete/1 Kannst du mir helfen? – Arianit

Antwort

2

Ich würde etwas vorschlagen, um die Benutzeroberfläche basierend auf dem Sicherheitsniveau für den Benutzer zu ändern. Sie könnten Ihren löschen Anruf in so etwas wie dieses wickeln:

@if (ViewContext.HttpContext.User.IsInRole("role name")) 
{ 
    // Authorized 
}