我想构建一个不调用Identity或OWIN的自定义授权属性。从本质上讲,它唯一应该访问的是请求上下文,并且能够告诉MVC框架进行处理以继续处理请求或拒绝它。
问题在ASP.NET Core 2中有一种简单的方法吗?
一些想法 我对ASP.NET Core的理解是它提供了一种使用不同中间件自定义请求管道的方法。我已经看到有一些特定的用于身份验证,但它们似乎都非常特定于Identity。
使用不同类型的过滤器会更好吗?
答案 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