Ich habe eine MVC-Website, in der Zugriff auf verschiedene Rollen basiert. Sobald sich ein Benutzer am System anmeldet, kann er die Navigation zu den Seiten sehen, für die er autorisiert ist. Einige Benutzer versuchen jedoch möglicherweise weiterhin, mithilfe einer direkten URL auf Seiten zuzugreifen. Wenn dies der Fall ist, leitet das System sie automatisch zur Anmeldeseite weiter. Statt der Login-Seite möchte ich sie in eine andere Ansicht umleiten (Unauthorized).Umleiten von nicht autorisierten Seitenzugriff in MVC auf benutzerdefinierte Ansicht
Web.Config hat den folgenden Eintrag:
<customErrors mode="On">
<error statusCode="401" redirect="~/Home/Unauthorized" />
<error statusCode="404" redirect="~/Home/PageNotFound" />
</customErrors>
<authentication mode="Forms">
<forms name="Development" loginUrl="~/Account/Login" cookieless="UseCookies" timeout="120"></forms>
</authentication>
ich auch diese Routen in Global.asax.cs registriert haben.
routes.MapRoute(
name: "Unauthorized",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Unauthorized", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "PageNotFound",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "PageNotFound", id = UrlParameter.Optional }
);
Wird es genug sein?
Da andere Vorgehensweise nicht funktioniert, wähle ich diese Route. Vielen Dank! Ich werde immer noch versuchen herauszufinden, warum web.config nicht funktioniert hat. Wird jeden Fund hier veröffentlichen. Prost! – user2739418
Haben Sie es gelöst? –