我试图在CSP中存储临时数据。
由于并发问题,我尝试避免^ Global和%session,并且由于安全问题而避免使用Javascript变量。
然后我遇到了困惑。以下代码均在一个CSP中:
<script language="Cache" runat="server">
s test = 1
</script>
<script language="Cache" method="Update">
s test = 2
</script>
<script language="Javascript">
function init(){
#server(..Update())#
alert("#(test)#");
}
</script>
<body onload="init();"></body>
test
返回为“1”而不是“2”。这里发生了什么?#()#在页面呈现期间执行。
所以你得到的页面如下。右键单击生成的页面并查看其源代码。
<script language="Javascript">
function init(){
#server(..Update())#
alert("1");
}
</script>
此外,考虑到通常,不同的CSP请求由不同的服务器进程处理,因此处理全局变量中的状态不是一个好主意。
如果您需要为每个用户会话保留数据,最好的方法是使用%session