阻止访问mvc中的操作的最佳方法

时间:2012-03-12 19:12:44

标签: c# asp.net-mvc visual-studio authentication

在旧的mvc 1项目中,我添加了一个供用户编辑其详细信息的选项。我没有使用表单身份验证(主要是因为我不应该大规模地更改以前的代码)所以我试图想出只允许当前登录的用户编辑他的详细信息的最佳方法。

目前,如果网址为http://localhost:61681/users/edit?userId=29,则其他用户只需更改userId即可修改其他人的详细信息。

我可以想到的方法是在userId与参数匹配时检查方法内部,但我不知道是否有更好的方法来执行此操作。

让我道歉,因为我理解这个问题显示了我的基本知识。

由于

2 个答案:

答案 0 :(得分:3)

为什么不让用户识别你正在检查userId参数?如果编辑页面不是为了让任何人编辑其他人的信息,那么就没有理由选择userId参数 - 只需让它编辑发出请求的用户。

答案 1 :(得分:1)

if( currrentUser.Id != userId )
  return Redirect( "http://example.com/access-denied" );

如果您已经知道登录用户,那么只需添加一个检查以查看它是否与要编辑的用户的ID匹配。如果不匹配,请不要让它们。