0

カスタムAuthorizAttributeを作成し、AuthorizeCoreをオーバーライドしようとしています どこでもうまく動作しますが、どこでも がアクセスしましたが、それは私がそこに行くことを可能にする。私がURL「http://localhost:8758/Classified/Attributes」を押すと、管理者の役割が必要になりますが、私のコードは管理者の役割なしでアクセスできます。 何か問題が起こっていますか? ここに私のコードです。AuthorizeCoreをカスタム権限でオーバーライドしますが、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 ............私は私の自己によって答えを得ました:)... –

答えて

0

私はちょうどコントローラの前に認可適用するのを忘れた小さなミスがありました...私の自己によって

を解決しました。
そういうもの。

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

関連する問題