【发布时间】:2012-07-01 23:20:19
【问题描述】:
我想帮助一个朋友 - 他们有一个相当大的 Web 应用程序(ASP.NET 4.0,Visual Basic),它有许多子文件夹,它们都充当准子应用程序(但它们只是主要应用程序)。此应用程序将被拆分为多个独立的 Web 应用程序,因为在其当前形式下,很难进一步维护和开发。
问题在于当前的单体应用程序使用了许多会话变量来存储用户信息(登录后等)。我想知道是否有一种简单的方法可以在未来的多个 Web 应用程序之间安全地共享这些信息(这将显然有独立的会话)。会话状态存储在 SQL Server 中。当前web应用的用户都是外部用户,并不是所有的用户都可以访问所有的“子应用”。
我正在寻找关于这两件事的一些建议:
1。 我已经做了一些搜索,发现单点登录 - 这似乎解决了这些应用程序的身份验证问题,但我不熟悉它,我不明白如果“会话”过期,身份验证信息如何被删除,因为不同的 Web 应用程序会有不同的会话。一旦会话在其中一个中过期,是否可以从所有 Web 应用程序中注销用户?
2。 我怀疑(但不确定)在拆分后可能需要共享的身份验证信息之上可能还有一些其他会话数据。最好的方法是什么(再次可靠和安全)?
我找到了this article about passing IDs(用于保存共享数据的数据库记录),想知道它是否好用。
所有建议将不胜感激。
PS:我在 SO 上找到了许多关于此的主题,但我不相信他们中的任何一个都回答了这些具体问题。我发现最有帮助的是这个:
【问题讨论】:
-
所有应用程序在同一个域还是不同的域?
-
我认为他们都将在同一个域上。目前它只是一个应用程序,我相信他们计划在同一个域上进行拆分。
-
我也在寻找在同域下的应用程序之间共享会话ID。
标签: asp.net sql-server session vb.net-2010