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
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.
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!
}
}
}
}