Asp.net-Mvc

基於路由參數的 ASP.NET MVC 授權

  • May 22, 2012

我的網站允許人們編輯文章。我希望人們只編輯他們的文章。我想要一個授權屬性,例如:

[CanEditPost(PostId = Id)]
ActionResult Edit(int Id) { }

但似乎屬性的參數必須是靜態的,這使得這是不可能的。有沒有辦法解決這個問題?

是的。

如果您創建一個繼承自 的屬性AuthorizeAttribute

您應該能夠通過以下方式訪問路由參數:

protected override bool AuthorizeCore(HttpContextBase httpContext)
{
   var postId = httpContext.Request.RequestContext.RouteData.Values["Id"];
   .
   .
   .
}

引用自:https://stackoverflow.com/questions/5224324