ASP.NET单点登录问题

时间:2010-01-18 10:35:07

标签: asp.net single-sign-on

我有一个具有挑战性的场景。我有一个现有的asp.net 1.1 Application A,它使用第三方java应用程序进行登录验证。

验证成功后,基于加密URL的第三方应用程序将重定向到我现有的应用程序A.应用程序A将解密该URL并为经过身份验证的用户执行会话登录。

我正在开发一个新的应用程序B(asp.net 2.0),它提供了一个页面供用户在应用程序A或B之间进行选择。

我想过存储加密的网址以及应用程序A和B将基于加密的查询字符串来适当地解密和验证用户。但是,我认为这种方法存在安全风险。

有没有更好的解决方案来实现这个?

1 个答案:

答案 0 :(得分:1)

您的用户数据存储在哪里?如果它在数据库表中,使用共享用户数据库表在多个Web应用程序中维护登录状态的最简单方法是使用类似于基于GUID的登录令牌,该令牌存储在数据库中的用户记录中。每次用户登录应用程序时,都会生成新的GUID令牌。然后,您可以在应用程序之间传递它如果应用程序通过此guid,它会自动登录相关用户。只要你使用https,这是非常安全的。而且你没有传递登录信息。即使有人以某种方式找到了GUID,它也只对单个会话有益。