我正在使用c#构建一个Web应用程序,我有以下问题。
我正在寻找一种方法,通过我的网址将“Id”这样的值传递给我的webapp,以安全的方式进行该会话。
这可能吗?
答案 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.");
}
}