没有Identity和OWIN的自定义授权属性

时间:2018-05-24 13:24:16

标签: asp.net authentication asp.net-core

我想构建一个不调用Identity或OWIN的自定义授权属性。从本质上讲,它唯一应该访问的是请求上下文,并且能够告诉MVC框架进行处理以继续处理请求或拒绝它。

问题在ASP.NET Core 2中有一种简单的方法吗?

一些想法 我对ASP.NET Core的理解是它提供了一种使用不同中间件自定义请求管道的方法。我已经看到有一些特定的用于身份验证,但它们似乎都非常特定于Identity。

使用不同类型的过滤器会更好吗?

1 个答案:

答案 0 :(得分:0)

有点迟到的回答,但仍然......覆盖属性的“旧”方式回归到.Net Core 2.0,除了基类之外,还必须实现IAuthorizationFilter接口:

[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class CustomAuthorizeAttribute : AuthorizeAttribute, IAuthorizationFilter
{
    private readonly string _someFilterParameter;

    public CustomAuthorizeAttribute(string someFilterParameter)
    {
        _someFilterParameter = someFilterParameter;
    }


    public void OnAuthorization(AuthorizationFilterContext context)
    {
        // you can play with the context here 
    }
}

更多讨论here