在ASP.NET C的另一个页面的标签中使用Javascript显示存储会话#

在ASP.NET C的另一个页面的标签中使用Javascript显示存储会话#,javascript,c#,asp.net,session,Javascript,C#,Asp.net,Session,有没有办法使用javascript变量存储会话并显示在另一个页面的标签上?我正在使用ASP.NET WebForms C# 谢谢。取决于您所说的“会话”的含义,如“管理者” 如上所述,“会话”可以由服务器管理(更安全,特别是如果您希望“完全控制”要持久化的数据) 但这并不是你可以创建“会话”的“唯一”地方。看,如果你的需求能够满足客户的需求 显而易见,它是客户端,因此用户/客户端可以对其进行操作(很简单),因此就像来自客户端的任何东西一样,永远不要信任(始终验证/检查) 琐碎的例子(必须改

有没有办法使用javascript变量存储会话并显示在另一个页面的标签上?我正在使用ASP.NET WebForms C#


谢谢。

取决于您所说的“会话”的含义,如“管理者”

  • 如上所述,“会话”可以由服务器管理(更安全,特别是如果您希望“完全控制”要持久化的数据)

  • 但这并不是你可以创建“会话”的“唯一”地方。看,如果你的需求能够满足客户的需求

    显而易见,它是客户端,因此用户/客户端可以对其进行操作(很简单),因此就像来自客户端的任何东西一样,永远不要信任(始终验证/检查)


琐碎的例子(必须改进):

在某些
\u布局
页面(或母版页,或站点的某些Javascript库)中:

在另一个页面中,为浏览器会话的持续时间设置

您可以使用浏览器开发工具检查
会话存储
本地存储
(不用说,如上所述,如果您可以,任何其他人都可以-因此验证/检查并且不要将其用于敏感项


Hth..

您计划如何存储此会话?如果您有一个输入元素,则将其值设置为该会话,并通过javascript将其拉入并保存为变量请花几分钟时间阅读然后更新问题,并提供您尝试执行的操作的完整详细信息。您不能直接使用JS存储会话变量。会话是服务器端概念,JS是客户端概念。如果您想使用JS设置一个可以传递给服务器的变量(服务器可以将其存储在会话中),那么您可以将该变量放入表单元素并发回,或者使用ajax。或者,如果您只需要将变量直接传递到下一页,那么在querystring中添加一个包含该变量的超链接就足够了。正如charlie所说,它告诉我们您想要实现的目标的全部细节,而不涉及具体的实现方法。如果
SomeServerVariable
最终来自用户或第三方,这里就存在代码注入的问题。在将变量的值作为已执行javascript的一部分插入页面之前,对该变量使用
HttpUtility.JavaScriptStringEncode
。@NineBerry同意-谢谢!
var ClientSession = function() {

    this.setItem = function(key, value) {
        sessionStorage.setItem(key, value);
    }

    this.getItem = function(key) {
        return sessionStorage.getItem(key);
    }
}

var mySessionBroker = new ClientSession();
<script>       

    window.mySessionBroker.setItem("key1", "hello from Index page");

    //At this point, you should see that you can store something generated from the server 
    //and manage it from that point forward in javascript/client like so:
    window.mySessionBroker.setItem("key2", "<%=HttpUtility.JavaScriptStringEncode(SomeServerVariable) %>");

</script>
<p>Session data: <input id="someInput" name="foo" /></p>


<script>

    window.onload = function() {
        var target = document.getElementById("someInput");
        target.value = window.mySessionBroker.getItem("key1");
    }


</script>