我的网站允许人们编辑帖子。我希望人们只编辑他们的帖子。我想要一个授权属性,如:
[CanEditPost(PostId = Id)]
ActionResult Edit(int Id) { }
但似乎属性的参数必须是静态的,这使得这是不可能的。有没有办法解决这个问题?
答案 0 :(得分:9)
是
如果您创建的属性继承自AuthorizeAttribute
,
您应该能够通过以下方式访问路线参数:
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var postId = httpContext.Request.RequestContext.RouteData.Values["Id"];
.
.
.
}