在ASP.NET MVC C#中的GET操作,视图和后续POST操作之间安全地保留数据#

时间:2016-02-17 22:59:49

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

我需要安全地存储和检索GET操作,获取服务的视图和视图中表单的POST操作之间的特定值。

此值是用户将为其编辑标题的文章的ID。如果我只是使用View中的普通隐藏输入来传递数据,我知道用户可以更改隐藏值,这可能会导致安全问题。

我读过的很多帖子只是说:“那么只需验证作者是否有权编辑您在POST操作中获得的ID文章。”

但是如果这个用户有权编辑两篇文章并且他将ID更改为他有权编辑的另一篇文章怎么办?我真的不想那样。

到目前为止,我找到了两种方法来解决这个问题:

1。 TempData的

[HttpGet]
public ActionResult Edit(int? id)
{
    TempData["id"] = id;
    return View();
}

[HttpPost]
public ActionResult Edit(int id)
{
    var id_from_get_action = TempData["id"];
    return View();
}

2。加密令牌

我找到post我为隐藏字段生成令牌,然后在POST操作上验证。

<input id="SomeProperty" name="SomeProperty" type="hidden" value="I love lamp">  
<input name="__SomePropertyToken" type="hidden" value="zqb7MIL2Y5F3jL96ncdSZOmetL8g8RAWZP8Y/w/jUAKJ89GcUViRWOZ/XtQhtICMFZb4sQtZLOpqK/WyC0TFP0B6r+3nObFGDjb0U459yzQbadC4+DLIsTmhyYeT+ZT+bnW1AEP2fgVyXXSduYIf5vns7g9nhRWTgJo8xF6NQyT6kNgyl5puq+BYc8dfhMXn">  

所以,回到我的问题。我的问题有标准解决方案吗?或者我列出了两种常用方法?

0 个答案:

没有答案