ASP.Net MVC 3 Rediriger l'utilisateur non autorisé pour ne pas se connecterUrl
j'ai un projet à l'aide de ASP.Net MVC3 et à l'aide de l'adhésion pour les rôles. j'utilise autoriser dans chaque contrôleur.
par exemple:
[Authorize(Roles = "Administrator")]
public ActionResult Index(string q, int i)
{
return View(model);
}
si quelqu'un n'a pas de rôle pour l'administrateur, puis il sera redirigé vers la page de connexion par défaut. comment faire pour changer,il va rediriger dans Views/Shared/supprimer l'autorisation.cshtml ? ou peut-être si quelqu'un n'a pas de rôle pour l'administrateur, il affichera la boîte de message (alerte) ?
merci à l'avance.
source d'informationauteur ntep vodka
Vous devez vous connecter pour publier un commentaire.
Il suffit de changer la page qui doivent être indiqués sur le web.config (vérifier que la route existe)
Si vous, au lieu de cela, voulez rediriger vers un chemin d'accès spécifique pour tous les rôles, vous pouvez étendre la AuthorizeAttribute avec votre propre. Quelque chose comme ça (pas testé, je vous écris pour vous donner une idée)
j'ai résolu mon problème. je ne fais que ça :
et appliquer MyAuthorize à la classe ou de l'action:
c'est tout.
Bien, vous pouvez hériter de
AuthorizeAttribute
et remplacerHandleUnauthorizedRequest
qui est en charge de la redirection de unauhorized/les requêtes authentifiées. je pense que cette question sera utile pour vousMa propre version, basée sur ntep vodka:
Cette façon, je reçois standard rediriger vers la page de connexion pour ne pas les utilisateurs authentifiés, et personnalisé de redirection pour les utilisateurs qui sont authentifiés, mais n'ont pas le rôle approprié pour l'action.
Le code ci-dessous aidé et voici la référence dans stackoverflow
ASP.NET MVC 4 personnalisé Autoriser attribut - Comment faire pour rediriger les utilisateurs non autorisés à la page d'erreur?
J'utilise cette méthode et il est très facile à mettre en œuvre.
La sécurisation de Asp.net MVC3
Modifier votre itinéraire par défaut à la page d'ouverture de session dans le mondial.asax