尝试将会话变量从ASP传递到ASP.NET

时间:2017-03-11 22:45:35

标签: authentication session-management asp.net asp.net-mvc

我们正在慢慢推出网页。基本上,“登录”页面位于ASP.NET中,旧页面位于ASP Classic中,这些页面位于菜单下方的Iframe中。他们有两个不同的服务器来处理菜单/页面。将用户会话从.NET传递到ASP Classic的最佳方法是什么。

我原本以为可能会修改.NET登录,以便在发布登录时同时将用户凭据发送到ASP页面。这有什么问题,或者有更清洁的方法吗?

1 个答案:

答案 0 :(得分:1)

您的ASP.NET代码可以读取域中的所有cookie,包括经典的ASP会话cookie,即使它不使用它。你可以利用这一点。

  1. 处理ASP.NET端的登录。除了您的身份验证过程创建的任何其他cookie之外,框架还应为被动创建ASP和ASP.NET会话。

  2. 编写读取经典ASP会话cookie的ASP.NET代码,并在数据库中创建一条JointSession记录,指示当前登录的用户。存储ASP会话cookie值和当前ASP.NET会话ID(每个都在它们自己的列中),以及用户ID,角色以及两个站点之间需要共享的任何其他内容。

  3. 编写ASP代码,读取自己的会话cookie并查找任何相应的JointSession数据库记录。如果找到一个,站点的ASP端可以推断用户已登录到ASP.NET,并可以创建自己的匹配会话,从JointSession记录中的字段初始化它。

  4. 如果需要在ASP和ASP.NET之间传递数据,请将列添加到JointSession,或者使用EAV架构。如果是我,我只需添加一个VarChar列并在其中抛出一些JSON。