2017-05-30 69 views
1

我想创建一个Web API MVC。 该API将授权TOKEN JWT,并且我想创建自己的Authorize属性,如CanRead,CanModify,CanWrite。 三个属性只是继承了属性类(没有AuthorizeAttribute),可以吗?如何为MVC API创建我自己的Authorize属性

我的应用程序复杂的角色和权限,所以我想定制所有关于授权和身份验证。 我想管理权限动态

那么我该怎么做呢?

我将访问数据库的属性(或者的CanRead CanModify)检查许可

回答

0

创建自定义AuthorizeAttribute代替。下面的例子。

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。我不知道具体你是如何授权,但是如果你创建一个类:

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

然后是AuthorizeCore方法中,确定根据设定用户是否具有正确的权限。

相关问题