Как я могу проверить, является ли пользователь владельцем объекта, когда он обновляет строку в структуре объекта? - PullRequest
0 голосов
/ 25 мая 2011

У меня проблема ... Я написал веб-сайт, и теперь я должен защитить свою страницу.Итак, проблема в том, что ... когда пользователь редактирует объект, я должен проверить, является ли он владельцем этого объекта.Традиционно (без сущностной структуры) я делаю это путем включения предложения where в SQL-запрос.Например:

update posts set
 title = "Great Post"
where 
 post_id = 5 and
 owner_id = " + CurrentLogedinUser.Id + "

Но я не знаю, как я могу сделать это в рамках сущности.

Может кто-нибудь сказать мне?

Ответы [ 2 ]

3 голосов
/ 25 мая 2011

В EF вы обычно загружаете элемент из контекста, изменяете его и помещаете обратно. Таким образом, вы можете проверить значение следующим образом:

var post = context.Posts.Single(p => p.PostId == 5);
if(post.OwnerId != CurrentLoggedInUser.Id) throw new Exception("Stop hacking!");
post.title = "Great Post";
context.SaveChanges();
0 голосов
/ 25 мая 2011

Если owner_id является свойством вашей Post сущности, то не можете ли вы просто проверить, что перед отправкой обновления (или даже прежде, чем разрешить им редактировать его)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...