2009-10-02 14 views
3

J'ai très simple:Comment rediriger les exceptions de sécurité basées sur des rôles à la page personnalisée (ASP.NET)

[PrincipalPermission(SecurityAction.Demand, Role = "Administrator")] 
public partial class _Default : System.Web.UI.Page 

Cela fonctionne - il refuse l'accès si le rôle n'est pas administrateur. Mais quand il refuse l'accès, je reçois simplement une page blanche (toutes les exceptions non gérées sont récupérées dans le fichier Global et envoyées par email/enregistrées). Comment puis-je dire où diriger en cas d'échec? Je peux donc afficher une page d'exception de sécurité.

Répondre

1

Dans Global.asax.cs, ajoutez ce qui suit à Application_Error:

if (exception.GetType() == typeof(System.Security.SecurityException)) 
       Response.Redirect("SecurityExceptionPage.html"); 
+1

Ce ok avec proccesing côté serveur! mais qu'en est-il webmethod avec appel ajax? ils ne lèvent pas application_error ... – ari