Как я могу передать в атрибут параметр, который был отправлен в функцию, для которой этот атрибут использовался?например, мне нужно сделать что-то вроде этого ...
[Authorize, AuthorizeLimited( ModuleID=pageModuleId)]
[HttpPost]
public ActionResult MoveModule(int pageModuleId, int sequence)
{
db.PageModule_Move(pageModuleId, sequence);
return Json("OK");
}
Отправленный методу pageModuleId должен также перейти к атрибуту.Извините, если об этом уже спрашивали, я не смог найти ответ.
РЕДАКТИРОВАТЬ
ОК, используя ответ, предоставленный @jrummell, вот мой первый атрибут фильтра действий :) Это просто остановитькто-то редактирует модуль (используемый ajax), у которого нет разрешения.
public class AuthorizeModuleEditAttribute : ActionFilterAttribute
{
private int _moduleID;
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
foreach (var parameter in filterContext.ActionParameters)
{
if (parameter.Key == "pageModuleId")
{
_moduleID = (int)filterContext.ActionParameters["pageModuleId"];
}
}
if (!SiteHelper.UserPermsForModule(_moduleID)) //checks if user has perms to edit module
throw (new Exception("Invalid user rights"));
base.OnActionExecuting(filterContext);
}
}