![]() |
1
42
首先,您要处理的问题与在无状态环境中处理状态有关。你所面临的困难并不新鲜,这可能是使web开发比windows开发或可执行文件开发更困难的原因之一。
在后面的链接中提到的项目之一是应用程序缓存。我不认为这是特定于用户的,因为它是应用程序范围的(很明显,它可以成为特定于用户的,但我也不建议这样做)。除了将数据传递给处理程序或模块之外,我从未在HttpContext中存储数据,但我怀疑它是否与上述解决方案有所不同。 总的来说,没有一个解决方案可以将它们统统统治。最好的方法是在每个页面上假设用户可以从任何地方导航到该页面(而不是假设他们使用另一个页面上的链接到达该页面)。如果你这样做,后退按钮的问题变得更容易处理(虽然仍然是一个痛苦)。在我的开发过程中,我广泛地使用前四种解决方案,有时在需要时使用最后一种解决方案。 |
![]() |
2
9
我想说托马斯唯一缺少的是;客户端javascript状态。在我工作的地方,我们发现客户越来越期待“web2.0”类型的应用程序。我们还发现,这类应用程序通常会带来更高的用户满意度。只要稍加练习,再加上一些非常棒的javascript库的帮助,比如jQuery(我们甚至已经开始使用GWT,并发现它非常棒),与WCF中实现的基于JSON的REST服务进行通信就变得微不足道了。这种方法还提供了一种非常好的方法,可以开始转向基于SOA的体系结构,并将UI和业务逻辑完全分离。 但我离题了。 在我看来,似乎您已经有了一个应用程序,并且已经扩展了ASP.NET内置会话状态管理的限制。所以。。。下面是我的建议(假设您已经尝试过ASP.NET的进程外会话管理,它比进程内/机箱内会话管理的扩展性要好得多,而且听起来您已经尝试过了,因为您提到了它);NCache。 NCache为您提供了一个替换ASP.NET会话管理选项的“drop-in”。它非常容易实现,而且可以很好地“创可贴”你的应用程序,让你通过-没有任何重大投资重构你现有的代码库立即。
只是我的想法。 |
![]() |
3
8
在玩了更复杂的会话状态处理(这导致了许多断开的返回按钮等等)之后,我最终滚动了自己的代码来处理加密的查询字符串。这是一个巨大的胜利——我的所有问题场景(后退按钮、同时打开多个选项卡、丢失会话状态等)都得到了解决,而且由于使用非常熟悉,复杂性也降到了最低。 这仍然不是一个万能的子弹,但我认为它是好的,约90%的情况下,你遇到的。 细节
所以你可以打电话:
CorePage解析出QueryString并将其加密到一个名为CoreSecure的QueryString变量中。所以实际请求如下所示:
从那里,您可以拨打:
结论 使用熟悉的语法,一切都可以无缝地工作。 在过去的几个月里,我还修改了这段代码来处理边缘情况,比如触发下载的超链接—有时需要在客户端生成一个具有安全查询字符串的超链接。效果很好。 让我知道如果你想看到这个代码,我会把它放在某个地方。 最后一个想法:接受我自己的答案而不是其他人在这里发表的一些非常有想法的帖子是很奇怪的,但这确实似乎是我问题的最终答案。感谢所有帮助我到达那里的人。 |
![]() |
4
5
Data pasing methods 我最后的建议是: 用于:
数据库
我的建议也取决于下面的统计数据和这个链接的细节 数据传递方法
|
![]() |
5
3
只需做一点工作,就可以支持子会话,并允许在不同的选项卡/窗口中执行多任务。 |
![]() |
6
2
作为一个起点,我发现使用关键数据元素(如客户ID)最好放入查询字符串中进行处理。您可以轻松地跟踪/过滤来自这些元素的坏数据,还可以与电子邮件或其他相关站点/应用程序进行一些集成。
在重写过程中,我通过“ViewEmployee.aspx?Id=XXX”和“ViewRequest.aspx?Id=XXX”的基本URL提供了雇员Id和请求Id。应用程序被设置为A)过滤掉坏的id,B)在允许用户访问这些页面之前对用户进行身份验证和授权。这允许主要应用程序用户做的是用电子邮件中的URL向审计员发送简单的电子邮件。当他们非常匆忙的时候,他们正处于批量处理时间,他们可以简单地点击一个url列表并进行适当的处理。
|
![]() |
zoid_ · 如何将列表中的一个项目更改为另一个列表中的另一个项目? 2 年前 |
![]() |
YungOne · 如何将RSA私钥转换为pem 2 年前 |
![]() |
Annie Nguyen · 使用函数对字符串进行加密/解密 2 年前 |
![]() |
Louis · 在Java中存储令牌/密码的最佳实践 2 年前 |
![]() |
beginner_geek07 · 为什么我的输出是“无”? 3 年前 |