Comment puis-je rediriger vers une page d'erreur dans asp.net mvc 3?
Donc, j'essaie de rediriger vers une page d'erreur dans mon propre AuthorizeAttribute utilisant que:
filterContext.Result = new HttpStatusCodeResult(403);
Dans mon web.config, j'ai d'abord essayé:
<customErrors defaultRedirect="/Error" mode="On">
<error statusCode="403" redirect="/UnAuthorize" />
</customErrors>
Après que j'ai essayé:
<customErrors defaultRedirect="/Shared/Error" mode="On">
<error statusCode="403" redirect="/Shared/UnAuthorize" />
</customErrors>
Et après, j'ai créer un ErrorController et j'ai essayé ça:
<customErrors defaultRedirect="/Shared/Error" mode="On">
<error statusCode="403" redirect="/Error/UnAuthorize" />
</customErrors>
Mais le navigateur affiche toujours m'page d'erreur par défaut pour 403, une idée?
SOLUTION POSSIBLE: Bien, j'ai vu les réponses de @bobek et @Robert Levy, mais j'ai trouvé une autre façon, un peu plus simple.
Dans mon AuthorizeAttribute-je créer un propery appelé RedirectOnErrorTo, et dans OnAuthorization méthode de mon AuthorizeAttribute j'ai fait:
if (!string.IsNullOrEmpty(this.RedirectOnErrorTo))
{
filterContext.Result = new RedirectResult(this.RedirectOnErrorTo);
}
Donc, maintenant, quand je déclare cet attribut-je choisir pour quel chemin je veux rediriger.
Il n'est pas automatisé comme je le voulais en utilisant uniquement web.config, mais devient utile. Que pensez-vous les gars, c'est une bonne façon de résoudre ce problème?
- Découvrez ma réponse ici stackoverflow.com/questions/8732048/...
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à http://devstuffs.wordpress.com/2010/12/12/how-to-use-customerrors-in-asp-net-mvc-2/