自定义授权 - Web API



我有一个 Web API,我需要为其实现自定义身份验证和授权。授权应由资源和操作定义,如下所示:

[Authorize("users","view")]
public async Task<IHttpActionResult> GetAsync()
{
}

有什么方法可以使用自定义授权过滤器并实现这一点吗?

此外,Web API 受客户端证书保护,调用方是请求标头中传递的密钥标识符。密钥使用自定义身份验证筛选器进行身份验证。

雷加拉兹,

John

是的,您可以创建自定义授权并放在需要授权的控制器或方法上。

示例如下

public class CustomAuthorize : System.Web.Http.AuthorizeAttribute
    {
        private string Resource { get; set; }
        private string Action { get; set; }
        public CustomAuthorize(string resource, string action)
        {
            Resource = resource;
            Action = action;
        }
        public override void OnAuthorization(
               System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            base.OnAuthorization(actionContext);
            //Check your post authorization logic using Resource and Action
            //Your logic here to return authorize or unauthorized response 
        }
    }

在这里,您可以执行自定义授权逻辑,示例控制器将如下所示

public class DoThisController : ApiController
{
    [CustomAuthorize("users","view")]// for specific methods
    public string Get()
    {
        return "Sample Authorized";
    }
}

相关内容

  • 没有找到相关文章

最新更新