代码之家  ›  专栏  ›  技术社区  ›  Omar

ASP.NET MVC检查用户是否可以执行操作

  •  0
  • Omar  · 技术社区  · 15 年前

    我的数据库中有一组由不同用户创建的文章。

    • 每个用户都可以创建文章并只编辑他们的文章。
    • 要编辑他们的文章,用户可以导航到“文章/编辑文章”页面。post id=x“,其中x是post id。

    • “posts”控制器有一个'[authorize]'属性,get部分操作检查是否由用户进行了post。

    如果用户确实发布了日志,则会呈现视图。视图中有一个带有“postid”的隐藏字段。

    当用户提交表单时,操作的post部分将重新检查postid是否与当前登录用户创建的post匹配。

    有没有更好的方法可以做到这一点而不必再次检查用户是否有权编辑文章,或者这是最好的方法?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Blair Scott    15 年前

    这对我来说真的很好。如果你不想检查用户两次,我唯一能建议的就是使用 anti-forgery token 用视图呈现。既然你只有在你被允许编辑文章的情况下才能进入视图,那么此时我想你需要做的就是检查文章是否来自你的站点。

        2
  •  0
  •   griegs    15 年前

    我也有同样的问题,但我通过移除在视图中编辑的功能来解决。一旦删除了编辑功能,我可以假设如果进行了编辑,那么用户就拥有了权限。

    我这样做是因为其他人,版主,也必须能够编辑帖子。

    很明显,这在互联网上可能不起作用,因为你可以绕过安全问题,但在公司内部网上,这是一种享受。

    我仍然认为我应该在业务层检查用户权限,但他们需要给我更多的钱和时间。:)