1

我已经尝试解决这个问题两天了,我还没有在网上找到任何有用的东西。奇怪的是,这曾经有效..!在更改 Web 服务器上的一些设置后(不幸的是,我不记得确切的更改)它停止工作:(

这是发生的事情;

我在 aspx 页面上有一个隐藏字段,其值设置为 page_load (aspx.cs,代码隐藏)上的当前日期时间字符串(长日期时间字符串,包括秒数)。同时,这个随机值以相同的方法记录在下一行的会话变量中。

比(简单解释)我将此值发送到 Web 服务,在该服务中我检查此值与存储在会话变量中的值。你猜怎么着..有不一样的!这曾经有效,但不再有效,我不知道发生了什么变化或出了什么问题。由于这个字符串的值是日期时间值(以秒为单位),我可以看到这个值“大部分时间”改变了 2 秒。当我在 IIS 上调试代码时(通过附加工作进程),我可以看到从会话中恢复的值比从隐藏字段恢复的值晚 2 秒。

这在我的开发机器上工作,问题是,它不能在 Web 服务器上工作(Windows server 2008 r2)

我知道你可以提出一些替代方案,我自己也可以想到这种方法的替代方案,但我真的对解决这里的难题非常感兴趣......

任何帮助是极大的赞赏。

谢谢。

编辑:简单的方法

page_load 上的方法调用

addSecureString(System.DateTime.Now.Second.ToString());

记录变量的方法

protected void addSecureString(string s) {

        string secureS = "111" + s;
        Session.Add("securestring", secureS);
        hdnss.Value = Session["securestring"].ToString();

}

在网络服务上

string tocheck = Session["securestring"];

hdnss -> 页面上隐藏字段的 id 注意:我正在使用日期时间的 Seconds 值,因为这是重要的部分并且正在改变..

4

1 回答 1

0

让您的 Web 服务与会话交互时有一些特殊注意事项:http: //msdn.microsoft.com/en-us/library/aa480509.aspx

于 2012-09-18T16:34:27.463 回答