MVC Action Filters using parameters passed to the for ActionResult?

前端 未结 2 2193
半阙折子戏
半阙折子戏 2021-02-19 20:03

I created a custom Action Filter with no problem.

But I would like to modify the Action Filter to use some of the parameters actually passed to my method.

So if

相关标签:
2条回答
  • 2021-02-19 20:44

    You can create a custom attribute which derives from FilterAttribute and implements IAuthorizationFilter.

    You should also be able to get the user information in the OnAuthorization method by accessing filterContext.HttpContext.User.Identity without the need to pass the userid.

    0 讨论(0)
  • 2021-02-19 20:54

    You can try OnActionExecuting override, where you do have access to action parameters.

    public class MyAttribute: ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {    
            if (filterContext.ActionParameters.ContainsKey("userId"))
            {
                var userId = filterContext.ActionParameters["userId"] as Guid;
                if (userId != null)
                {
                    // Really?! Great!            
                }
            }
        }
    } 
    
    0 讨论(0)
提交回复
热议问题