如何在不使用<input type="hidden" />
字段的情况下将JavaScript变量发送到(ASP.NET代码隐藏)C#?在浏览器检查器中,hidden
字段及其值是可见且可编辑的。
答案 0 :(得分:1)
您可以使用AJAX方法
一个好的教程:http://www.brainbell.com/tutorials/ASP/A_Web_Service_In_ASP.NET.html
例如,背后的代码:
[WebMethod]
public static bool UpdateLocation(string lat)
{
try
{
//Your code
}
catch (Exception ex)
{
throw;
}
}
示例Javascript代码:
$.ajax({
type: "POST",
url: "/MyPage.aspx/UpdateLocation",
data: "{lat:'1313.23232'}",
contentType: "application/json; charset=utf-8",
dataType: "json"
});
答案 1 :(得分:1)
如果我在会话中从js保存我的变量,然后在会话中在asp.net中打开这个变量,那么用户是否可以查看和更改变量?
答案 2 :(得分:0)
两件事:
首先,正如@AnibalDíaz所说,您应该通过AJAX而不是表单来执行此操作。如果您不希望在您的网页上添加<input type="hidden" />
标记。
其次,如果您担心用户可以查看该字段的值,那么您会遇到更大的问题。在当前的浏览器检查器中,通常有一个“网络”选项卡,您可以在其中查看来自页面的所有HTTP请求。大多数在HTML中查找数据的人也会知道他们可以通过网络选项卡轻松查看HTTP请求本身的数据,实际上他们可能会先去那里而不是检查表单。如果您担心他们更改数据,许多浏览器的网络工具也允许您修改请求并再次发送,因此他们也可以轻松发送另一个具有不同值的请求对于那个领域。
有很多方法可以让这更难,但最终,网页上的任何内容都不是私密的。当您向用户发送网页时,您也会向他们发送所有JavaScript代码。恶意用户始终可以修改该代码并更改其行为。这意味着您永远不应该依赖浏览器来保护安全性。如果您不希望用户能够查看或修改某些数据,不会将该数据发送给用户。
您可能需要重新考虑一下您的架构。我对C#或ASP.NET了解不多,但是如果你可以在服务器上维护每个用户的会话并在服务器上存储与该用户相关的数据,那就是你要走的路。如果用户存储在服务器上并且从未发送到浏览器,则用户无法访问您的数据。