DNN单点登录通过webservice

时间:2013-09-04 18:33:11

标签: single-sign-on dotnetnuke

我已经为我的DNN网站实施了SingleSignOn,例如www.example1.com。还有另一个名为www.example2.com的网站。这两个站点都将重定向到一个公共登录页面,该页面使用Web服务从外部数据库对用户进行身份验证。

问题是,当我点击example1.com中的登录按钮时,用户将被重定向到常见的sso登录页面,并且在成功进行身份验证后,他将被重定向回原始站点。如果我打开一个新标签并输入example2.com的网址,则该用户未登录。

但是,如果我点击example2.com中的登录按钮,用户将自动登录。

我想要的是,当我在第一个选项卡中登录到一个站点并在第二个选项卡中打开另一个站点时,在页面加载时,只有用户应该登录,而不是登录点击。

我该如何处理这个问题?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我做了类似的事情。

您的数据库应该跟踪当前登录的用户。在重定向到公共登录页面之前,您应该检查用户是否已登录。您的example2.com在重定向到用户之前没有检查用户是否已登录常用登录页面。

以下是我们的工作方式:

  1. 两个站点必须在重定向之前检查cookie /令牌
  2. 用户登录网站并进行身份验证
    • 将用户写入令牌数据库
    • 将Cookie中的令牌存储到期
  3. 后续请求从cookie读取令牌并验证令牌数据库
  4. 当用户注销时,将删除cookie和数据库条目
    • 如果用户未正确注销,则必须按设定的时间间隔清理令牌