【发布时间】:2014-12-26 19:35:26
【问题描述】:
我正在尝试使用声明来控制对 MVC 中资源的访问。但是,当我尝试通过争论保护资源时,我正在挣扎。例如,如果我想允许对他们拥有并拥有以下权利的车辆执行编辑操作:
我添加声明:
-
http://tempuri/registration:AA11XX -
http://tempuri/registration: BB11YY
我有一个 MVC 操作,例如:
[ClaimsPrincipalPermission(SecurityAction.Demand,Operation = "Post", Resource = "Vehicle/{registration}")]
public ActionResult Edit(string registration)
{
//Stuff
}
我想确保传递给Edit 方法的参数在注册声明列表中。我知道我可以在操作中强制执行此操作,但我想以声明方式执行此操作。
我可以使用 WIF 管道覆盖 CheckAccess 方法。
public class AuthorisationManager : ClaimsAuthorizationManager
{
public override bool CheckAccess(AuthorizationContext context)
{ ... }
AuthorizationContext 包括请求的资源和用户拥有的声明。缺少的环节是知道什么参数被传递到 MVC 动作中。
有没有办法做到这一点,还是我以错误的方式处理整个事情?
非常感谢,
保罗
【问题讨论】:
标签: c# security claims-based-identity