ich eine benutzerdefinierte Rolle Provider zu schaffen und ich setzen ein Autorisieren Attribut eine Rolle in meinem Controller spezifiziert und es funktioniert ganz gut, wie folgt aus:ASP.NET MVC auf einen Zugriff verweigert Seite mit einem benutzerdefinierten Rollenanbieter umleiten
[Authorize(Roles="SuperAdmin")]
public class SuperAdminController : Controller
...
Wenn ein Benutzer jedoch keinen Zugriff auf diesen Controller hat, wird er zur Anmeldeseite umgeleitet. Wie kann ich ihn auf eine "AcessDenied.aspx" Seite umleiten?
Wenn der Benutzer angemeldet ist und versucht, auf die Seite zuzugreifen, werden sie auf die AccessDenied-Seite umgeleitet. Gut. Wenn der Benutzer jedoch nicht angemeldet ist, wird er zur Seite "Zugriff verweigert" weitergeleitet. Schlecht.In diesem Fall sollten sie auf die Anmeldeseite umgeleitet werden. –
Wenn Sie möchten, dass die Seite normal weitergeleitet wird, wenn der Benutzer nicht mehr vorhanden ist, fügen Sie nach dem Aufruf der Methode base.OnAuthorization() eine if-Anweisung um den Rest des Codes hinzu, der prüft, ob Threading.Thread.CurrentPrincipal. Identity.IsAuthenticated. Auf diese Weise wird der Benutzer auf die AccessDenied-Seite geleitet, es sei denn, der Benutzer wird nicht authentifiziert ... in diesem Fall wird die Standardaktion ausgeführt (Weiterleitung zur Anmeldeseite) – Frinavale
Wo wird diese Klasse abgelegt? in der Steuerung? – Jay