如何在获取MVC中的页面详细信息时将id值传递给控制器​​而不是查询字符串

时间:2013-02-28 16:01:36

标签: asp.net-mvc

我希望将保险身份证件传递给控制人员,同时获得看起来像的保险详情:

//获取:/保险/详情/ 123456789

但出于安全原因,我不想在查询字符串中传递此ID号123456789。 有人可以建议我最好的方式。我是MVC的新手。

由于

2 个答案:

答案 0 :(得分:0)

尝试通过POST将值作为隐藏参数提交。您需要使用表单来进行POST提交。你不能使用链接。

<form method="POST" action="/Insured/Details">
    <input type="hidden" name="insuredid" value="123456789"/>
    <input type="submit"/>
</form>

然后,您将通过请求参数获取值。如果使用Java servlet,它看起来像这样:

String myInsuredId = request.getParameter("insuredid");

我想它看起来也和其他平台类似。

注意:尽管将值作为隐藏参数传递会隐藏视图中的数据,但这并不会阻止人们嗅探提交的数据或检查页面的HTML源代码。如果您真的想要保证安全,那么您需要使用某种形式的加密/安全性。尝试查看HTTPS帖子。

答案 1 :(得分:0)

您需要清理控制器中的输入,例如,如果客户已登录,您可以检查传递给控制器​​的ID是否真正属于客户。

请求中可通过的任何内容(无论是POST还是GET)都是可欺骗的。

您还应该考虑通过HTTPS提供页面。

E.g。 (asp.net MVC / C#)

public ActionResult Details(string id)
{
    if (Check(id) == false)
    {
        // Handle invalid input
        throw new HttpException(404, "HTTP/1.1 404 Not Found");
    }

    // create the model
    ...
}