Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC检查用户是否可以执行操作_C#_Asp.net Mvc - Fatal编程技术网

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

C# ASP.NET MVC检查用户是否可以执行操作,c#,asp.net-mvc,C#,Asp.net Mvc,我的数据库中有一组由不同用户创建的帖子 每个用户都可以创建帖子并仅编辑其帖子 要编辑他们的帖子,用户导航到“Posts/EditPost?PostID=x”页面,其中x是帖子ID “Posts”控制器有一个“[Authorize]”属性,操作的GET部分检查post是否由用户完成 如果用户确实发了帖子,它会呈现视图。在视图中有一个隐藏字段,带有“posted” 当用户提交表单时,操作的POST部分将重新检查PostID是否与当前登录用户创建的POST匹配 有没有更好的方法可以做到这一点,而不

我的数据库中有一组由不同用户创建的帖子

  • 每个用户都可以创建帖子并仅编辑其帖子
  • 要编辑他们的帖子,用户导航到“Posts/EditPost?PostID=x”页面,其中x是帖子ID

  • “Posts”控制器有一个“[Authorize]”属性,操作的GET部分检查post是否由用户完成

如果用户确实发了帖子,它会呈现视图。在视图中有一个隐藏字段,带有“posted”

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


有没有更好的方法可以做到这一点,而不必反复检查用户是否有权编辑帖子,或者这是最好的方法?

这对我来说确实不错。如果您不想检查用户两次,我唯一能建议的是使用类似于渲染视图的对象。由于只有在允许编辑帖子的情况下,您才能访问上的视图,因此我认为您需要做的就是检查帖子是否来自您的站点。

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

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

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

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