0

J'essaie de créer AuthorizAttribute personnalisé et de surcharger AuthorizeCore ça fonctionne bien partout où mais quand je suis allé à l'accès restreindre l'URL qui n'est pas autorisée sans rôle spécifique, ça me permet d'y aller. comme quand je frappe l'URL "http://localhost:8758/Classified/Attributes" il exige le rôle d'admin mais mon code permettant d'y accéder sans rôle d'admin. Je fais quelque chose de mal? voici mon code.Overriding AuthorizeCore dans l'attribut Authorize personnalisé mais permettant d'accéder directement à partir de l'URL

using System; 
using System.Web; 
using System.Web.Mvc; 
using Classified.Web.Services; 


namespace Classified.Web 
{ 
    public class CustomAuthorizeAttribute : AuthorizeAttribute 
    { 
     public IFormsAuthenticationService AuthenticationService { get; set; } 

     public string RequiredRole; 

     protected override bool AuthorizeCore(HttpContextBase httpContext) 
     { 
      if (httpContext == null) throw new ArgumentNullException("httpContext"); 
      AuthenticationService = new FormsAuthenticationService(new HttpContextWrapper(HttpContext.Current)); 

      var user = AuthenticationService.GetAuthenticatedUser(); 

      if (user == null) 
       return false; 

      foreach (var i in user.Roles) 
      { 
       if (i.RoleName == RequiredRole) 
       { 
        return true; 
       } 
      } 

      return false; 

     } 
    } 
+0

Huh ............ j'ai obtenu une réponse par moi-même:) ... –

Répondre

0

Je suis solution par moi-même ...

Il y avait une petite erreur, je viens oublié de demander avant d'autoriser le contrôleur.
Quelque chose comme ça.

[Authorize] public class AdminController : Controller { . . .