将用户登录到其他URL

时间:2011-05-04 17:38:57

标签: c# asp.net session

所以我有一个管理面板,用于与主站点不同的网站上的网站。我们目前在主站点上散列所有用户的密码。客户想要的是从管理站点自动登录主站点的方法。我遇到了问题,因为交叉网址会话设置真的很痛苦。到目前为止,我已经尝试了一个Web服务并使用HttpWebRequest来访问将自动登录用户的网页。由于会话问题,这些都不起作用。

所以我想我的问题是,实现这个目标的最佳方法是什么?它也必须非常安全。我目前正在使用时间到期哈希进行安全登录。

更新

我在想Open ID。虽然我不能使用它,因为我们已经定义了身份验证系统,但想法是一样的,我想在不修改我的身份验证逻辑的情况下开发类似的东西。

1 个答案:

答案 0 :(得分:0)

我正在做的是使用数据库来共享会话/用户ID:

  • 在网络应用A中,我有一个指向网络应用B的链接。
  • 该链接具有Web应用A的唯一登录ID(例如会话ID)作为参数。

“工作流程”大致如下:

  1. 当用户点击链接时(或仅在Page_Load中),会话ID将存储到数据库中。
  2. 正在打开Web应用程序B,正在传递Web应用程序A的会话ID。
  3. Web应用程序B在数据库中查找并搜索Web应用程序A的会话ID。
  4. 找到后,会进行一些安全检查(例如记录年龄)。
  5. 如果一切正常,则用户已登录Web应用程序B.
  6. 该表具有如下结构:

    +--------------------------------------------------------+
    | ID | SessionID | UserID | DateWhenThisRecordWasCreated |
    +--------------------------------------------------------+
    

    使用此配置,您可以在各种相关应用程序之间传递日志,他们只需要访问同一个数据库。 (如果你不能共享数据库,可以想到Web应用程序A提供Web应用程序B可以查询的SOAP Web服务。)

    我无法想象这有什么安全感;另一方面,如果有人能想到一个,我会很高兴听到你的反馈。