この属性が使用された関数に送信されたパラメータを属性に渡すにはどうすればよいですか?例えば私はこのような何かをする必要があります...メソッドに送ら使用されているメソッドからパラメータを送ることができる方法はありますか
[Authorize, AuthorizeLimited(ModuleID=pageModuleId)]
[HttpPost]
public ActionResult MoveModule(int pageModuleId, int sequence)
{
db.PageModule_Move(pageModuleId, sequence);
return Json("OK");
}
pageModuleIdも属性に行かなければなりません。申し訳ありませんが、これは既に私に答えを見つけることができませんでした尋ねられている場合。 @jrummellここで提供さ答えを使用して
EDIT
OKは私の最初のアクションフィルタ属性です:)これは、パーマを持っていません(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);
}
}