Asp.net-Mvc
基於路由參數的 ASP.NET MVC 授權
我的網站允許人們編輯文章。我希望人們只編輯他們的文章。我想要一個授權屬性,例如:
[CanEditPost(PostId = Id)] ActionResult Edit(int Id) { }但似乎屬性的參數必須是靜態的,這使得這是不可能的。有沒有辦法解決這個問題?
是的。
如果您創建一個繼承自 的屬性
AuthorizeAttribute,您應該能夠通過以下方式訪問路由參數:
protected override bool AuthorizeCore(HttpContextBase httpContext) { var postId = httpContext.Request.RequestContext.RouteData.Values["Id"]; . . . }