.net 重写ClaimsAuthorizationManager时是否可以访问控制器参数?

.net 重写ClaimsAuthorizationManager时是否可以访问控制器参数?,.net,asp.net-mvc,asp.net-mvc-4,c#-4.0,claims-based-identity,.net,Asp.net Mvc,Asp.net Mvc 4,C# 4.0,Claims Based Identity,我创建了自己的授权管理器:ClaimsAuthorizationManager以帮助进行授权。我正在使用开箱即用属性ClaimsPrinciplePermission [ClaimsPrincipalPermission(System.Security.Permissions.SecurityAction.Demand, Operation="Show", Resource="Account")] public ActionResult Index(int? id) 问题/问题,在我的publ

我创建了自己的授权管理器:ClaimsAuthorizationManager以帮助进行授权。我正在使用开箱即用属性ClaimsPrinciplePermission

[ClaimsPrincipalPermission(System.Security.Permissions.SecurityAction.Demand, Operation="Show", Resource="Account")]
public ActionResult Index(int? id)
问题/问题,在我的public override bool CheckAccess(AuthorizationContext上下文)方法中,我想获取控制器参数id。这可能吗


我需要根据CheckAccess中的参数id执行逻辑。这可能吗?

我想您可以直接从

context.HttpContext.Request.Params["id"]


不幸的是,AuthorizationContext和HttpContext类型的CheckAccess方法上下文不是的属性。i、 e.AuthorizationContext不包含HttpContext的定义创建此类管理器的主要目标是什么?我使用现成的ClaimsPrinciplePermission属性,并标识操作/资源,但是用户对该特定方法的访问特定于传递到该方法的id。i、 e.用户可以根据传入的id进行访问。因此,我需要在自定义AuthorizationManager:ClaimsAuthorizationManager中获取控制器方法参数id。我可以获取操作、资源,但不能获取使用的参数。如果这只是基于角色或帐户权限对用户进行筛选,则应覆盖现有解决方案:身份验证筛选器。这更多的是授权,而不是身份验证。此外,我正在使用ClaimsPrincipalPermission属性指定资源/操作。使用此属性,为了添加自定义授权,您可以创建自己的授权管理器,并从现成的授权管理器派生
context.Controller.ValueProvider.GetValue("id")