通过URL将该特定值安全地传递给该会话的webapp

时间:2014-06-04 07:59:30

标签: c# security url session-variables

我正在使用c#构建一个Web应用程序,我有以下问题。

我正在寻找一种方法,通过我的网址将“Id”这样的值传递给我的webapp,以安全的方式进行该会话。

这可能吗?

2 个答案:

答案 0 :(得分:0)

更新

我现在可以说:www.url.be/?id = 1

并在page_load上显示:

 protected void Page_Load(object sender, EventArgs e)
{




    string id = Request.QueryString["id"];
    if (id != null)
    {
        Response.Write("id is ");
        Label1.Text = id;
    } 
}

现在这根本不安全,所以有没有办法以用户无法改变id的方式传递?id = 1。

答案 1 :(得分:0)

您不能阻止用户改变客户端的任何内容。

如果您的网址为www.example.com/ViewOrder.aspx?id=232,并且您希望通过更改号码来阻止用户查看不属于他们的订单,则需要实施一些当前用户有权访问订单的安全检查服务器

e.g。

protected void Page_Load(object sender, EventArgs e)
{
    int id = Convert.ToInt32(Request.QueryString["id"]);

    string userName = HttpContext.Current.User.Identity.Name;

    if (OrderService.GetOrder(id).User.Username == username)
    {
      Response.Write("id is " + id);
    }
    else
    {
      throw new SecurityException("User does not have permission to access another user's order.");
    }
}