Да, это возможно с помощью фильтра пользовательских действий. Вы можете расширить с AuthorizeAttribute
, самая базовая реализация выглядит примерно так:
public class OwnImageAuthorizeAttribute : AuthorizeAttribute {
public string ImageIdKey { get; set; }
protected override bool AuthorizeCore(HttpContextBase httpContext) {
bool authorized = false;
// Get the current user
var currentUser = ...;
// Get the image ID, whether it is in the route or querystring
int imageId
if(int.TryParse(httpContext.RouteData.Values(ImageIdKey), out imageId)) {
// From querystring: httpContext.Request.Querystring[ImageIdKey]
// Authorize the user
authorized = YourMethodToCheckIfUserIsOwner(currentUser, imageId);
}
return authorized;
}
Затем украсьте свой метод:
[OwnImageAuthorize(ImageIdKey = "imageId")]
public ActionResult MyAction() { }
Более подробную информацию вы можете найти здесь .