如何通过更改路由中的记录ID值来限制一个用户查看其他数据?

时间:2018-09-02 16:00:19

标签: c# asp.net asp.net-mvc

我正在开发asp.net MVC应用程序,我首先有两条路线是 属于用户1的http://localhost:60184/Owner/Edit/11,属于用户2的http://localhost:60184/Owner/Edit/1。我希望两个用户都只能编辑,删除,更新自己的数据,为此我使用了[Authorize(Roles =“ Owner”)],但是两个所有者都可以通过仅更改路由中的id值来看到彼此的数据? 有人请帮助解决此问题?

1 个答案:

答案 0 :(得分:0)

您只需要将OwnerId字段添加到要编辑的数据库表中,并将其与当前用户ID进行比较。

public ActionResult Edit(SomeVmClass model)
{
      var entity = //fetch the entity from DB
      if(User.Identity.GetUserId() != entity.OwnerId)
            return HttpNotFound();
      // your code
}