J'ai une fonction nommée commentaires avec des attributs [Authorize (Roles = "Admin, Users")]. J'ai bouton d'édition pour les commentaires. Dans la fonction Edit, nous avons l'attribut [Authorize (Roles = "Admin")]. Lorsque l'utilisateur tente d'accéder, je veux lancer une page d'erreur personnalisée. Je n'utilise pas l'authentification par formulaires uniquement le fournisseur de rôles. Comment puis-je rediriger vers la page d'erreur personnalisée.utilisant le fournisseur de rôles dans l'application mvc2
2
A
Répondre
0
Ecrire un attribut personnalisé
par exemple
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
private string[] UnAuthorizedRoles = new string[] { "USER" };
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext)
{
bool authorized = true;
foreach (string role in UnAuthorizedRoles)
{
if (httpContext.User.IsInRole(role))
{
authorized = false;
}
}
return authorized;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
// send to custom error page
}
}