在 ActionFilterAttribute 中查找过滤器
Finding a filter in ActionFilterAttribute
我创建了一个自定义的 ActionFilterAttribute,我这样称呼它:
[ScopeActionFilter(acceptedScopes = new string[] { "Files.Upload" })]
public IActionResult Upload(IFormFile[] files)
{
}
现在,如何在 OnActionExecuting
方法中找到 acceptedScopes
的值?我如何检查 acceptedScopes 是否已传递给 ActionFilter ?
public class ScopeActionFilter : ActionFilterAttribute
{
public string[] acceptedScopes { get; set; }
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
ScopesRequiredByWebApiExtension.VerifyUserHasAnyAcceptedScope(actionContext.HttpContext, actionContext.ActionArguments["acceptedScopes"] as string[]);
}
}
string[] ActionArguments = ((ScopeActionFilter)actionContext.Filters.Where(t => t is ScopeActionFilter).First()).acceptedScopes;
会起作用
how do I find the value of acceptedScopes in the OnActionExecuting method ?
在您的代码中,我们可以发现您在将 ScopeActionFilter
应用于 action 方法时设置了 acceptedScopes
属性 的值,以获取 [=11= 的值] 在OnActionExecuting方法中,可以试试:
public class ScopeActionFilter : ActionFilterAttribute
{
public string[] acceptedScopes { get; set; }
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
var args = acceptedScopes;
ScopesRequiredByWebApiExtension.VerifyUserHasAnyAcceptedScope(actionContext.HttpContext, args);
}
}
测试结果
我创建了一个自定义的 ActionFilterAttribute,我这样称呼它:
[ScopeActionFilter(acceptedScopes = new string[] { "Files.Upload" })]
public IActionResult Upload(IFormFile[] files)
{
}
现在,如何在 OnActionExecuting
方法中找到 acceptedScopes
的值?我如何检查 acceptedScopes 是否已传递给 ActionFilter ?
public class ScopeActionFilter : ActionFilterAttribute
{
public string[] acceptedScopes { get; set; }
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
ScopesRequiredByWebApiExtension.VerifyUserHasAnyAcceptedScope(actionContext.HttpContext, actionContext.ActionArguments["acceptedScopes"] as string[]);
}
}
string[] ActionArguments = ((ScopeActionFilter)actionContext.Filters.Where(t => t is ScopeActionFilter).First()).acceptedScopes;
会起作用
how do I find the value of acceptedScopes in the OnActionExecuting method ?
在您的代码中,我们可以发现您在将 ScopeActionFilter
应用于 action 方法时设置了 acceptedScopes
属性 的值,以获取 [=11= 的值] 在OnActionExecuting方法中,可以试试:
public class ScopeActionFilter : ActionFilterAttribute
{
public string[] acceptedScopes { get; set; }
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
var args = acceptedScopes;
ScopesRequiredByWebApiExtension.VerifyUserHasAnyAcceptedScope(actionContext.HttpContext, args);
}
}
测试结果