有关表单发送者的信息 - ASP.NET MVC

时间:2014-02-13 11:25:28

标签: asp.net-mvc forms security input

我想在我的应用中创建一个群组。在模型中,该组具有字段Admin_ID以指定谁是所有者。如何在表单中包含该信息?有隐藏的领域?我认为这不是足够安全的解决方案......还有其他想法吗?

4 个答案:

答案 0 :(得分:0)

如果隐藏字段不足以保证安全性 - 请不要将其包含在那里,而是单独执行操作,只对您的管理员组执行操作。

抱歉,无法提供更多详细信息,因为您的问题中没有足够的信息。

答案 1 :(得分:0)

  

在模型中,该组具有字段Admin_ID以指定谁是所有者。

然后应用身份验证(请参阅MVC版本的教程),以便了解哪个用户已登录,使用授权仅限制对管理员的访问,并在控制器中将创建用户的ID分配给模型:< / p>

[Authorize(Roles="Admin")]
public ActionResult Create(SomeModel modelToCreate)
{
    // get user, depends on how your project is set up...   
    var user = GetLoggedOnUser();   

    modelToCreate.Admin_ID = user.ID;

}

答案 2 :(得分:0)

您始终可以在会话中保存Admin_ID。

答案 3 :(得分:0)

为了更好地理解:

 public class Group
 {
    public int A { get; set; }
    public string B { get; set; }
    public string C { get; set; }
    public string ID_Admin { get; set; }
 }

当登录的人想要提交该表单时,应自动生成ID_Admin(他只需要填写A,B和C字段)。因此,让我们说当前登录的用户有ID 42,并且他想提交该表格(当然不知道该附加字段) - 我想在最终模型提交中包含有关其ID的信息。