2017-05-30 29 views
1

Web API MVCを作成します。 このAPIはTOKEN JWTを承認し、CanRead、CanModify、CanWriteのような独自のAuthorize属性を作成したいと思います。 3つの属性がAttributeクラス(AuthorizeAttributeなし)を継承しているだけですか?MVC APIの独自のAuthorize属性を作成する方法

私のアプリケーションは複雑な役割と権限を持っているため、認証と認証に関してすべてをカスタマイズしたいと考えています。 権限を動的に管理したい

どうすればいいですか?

は、私が代わりにカスタムAuthorizeAttributeを作成許可

答えて

0

をチェックするために、属性(CanReadまたはCanModify)からデータベースにアクセスします。以下の例。

public class KeyAuthorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     string key = httpContext.Request["X-Key"]; 
     return ApiValidatorService.IsValid(key); 
    } 
} 

public static class ApiValidatorService 
{ 
    public static bool IsValid(string key) 
    { 
     int keyvalue; 

     if (int.TryParse(key, out keyvalue)) 
     { 
      return keyvalue % 2137 == 7; 
     } 
     return false; 
    } 
} 

タケノキfrom Jon Galloway's blog。私はあなたが許可されているか、特に知りませんが、あなたが持つクラスを作成する場合:AuthorizeCoreメソッド内

public bool CanRead { get; set; } 
public bool CanWrite { get; set; } 
public bool CanModify { get; set; } 

そして、ユーザが権利権限を持っている場合は、設定に基づいて決定します。

関連する問題