Если у вас есть общий метод / действие Edit и вы хотите сохранить его таким образом, я бы добавил в ваш контроллер метод, похожий на ValidateOwnership (record). Этот метод должен был бы проверить, совпадает ли идентификатор CurrentUser с идентификатором в записи, и если пользователь является членом определенной роли - это можно сделать с помощью класса RoleManager. Метод вернет истину / ложь.
Когда вы подготовитесь, поместите вызов метода в ваш код после проверки ModelState. Это будет выглядеть так
[HttpPost]
public ActionResult Edit(PJpost pjpost)
{
if (ModelState.IsValid)
{
if(IsOwnershipValid(pjpost){
db.Entry(pjpost).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
else {
ModelState.AddModelError("ERROR","You're not allowed to do that");
return View(pjpost);
}
}
return View(pjpost);
}
РЕДАКТИРОВАТЬ:
Таким образом, OwnershipValidation может выглядеть так:
public bool ValidateOwnership(Pjpost pjpost) {
if (pjpost.MemUID == Membership.GetUser().ProviderUserKey.ToString())
{
return true;
}
else
{
return false;
}
}
Надеюсь, вы это имели в виду.