在没有隐藏字段asp.net的POST方法中传递参数

时间:2011-02-12 15:51:32

标签: html webforms

我有一个post方法,其中,我想传递一些像student_id这样的参数。 我可以通过使用隐藏字段来做到这一点,但我不想使用隐藏字段。 这样的事情:

<form id="form1" action="post" src="https://mydomain.com?student_id=value">

请注意,我正在尝试隐藏网址中的信息。 我非常了解HTML,所以不要担心语法。

有人能帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

我看到的三个选择是:

  1. 将数据放入隐藏字段 - 如果您不希望通过页面源轻松获取,则可能存储在视图状态中。
  2. 将数据放入网址 - 或数据的代理,例如,如果您不希望ID实际可见,则解密为实际ID的加密slug。
  3. 将数据放入cookie中,可能是加密的。
  4. 在我提出建议之前,我需要了解更多有关您的要求的信息。你说你想要避免前两个,但我不清楚,如果值是加密的或代理的(例如使用数据库ID而不是学生ID),是否可以使用它们。通常,我使用人工数据库id(自动生成的整数)代理它并将其直接放在URL中,但我也会使用ASP.NET MVC而不是webforms。

答案 1 :(得分:0)

如果您担心向客户端显示一段敏感数据,答案是避免完全发送。

将值存储在服务器上的数据存储或缓存中,并将键传递给表单中的值。例如:

<form id="form1" action="post" src="https://mydomain.com">
    <input type="hidden" name="student-cache-key" value="23154546">

然后在发布表单时,您将在表或缓存中查找23154546以检索值...(伪造代码)

int studentId = cache.Get(post['student-cache-key']);
// studentId now equals 5, or null etc

无论您使用何种机制,都必须检查商店中存在的值,并处理不存在的情况。