0

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

问题是,当我点击example1.com中的登录按钮时,用户将被重定向到普通sso登录页面,并且在认证成功后,他将被重定向回原来的站点。如果我打开一个新选项卡并输入 example2.com 的 url,则用户没有登录。

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

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

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

4

1 回答 1

0

我做类似的事情。

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

以下是我们的工作方式:

  1. 两个站点都必须在重定向之前检查 cookie/Token
  2. 用户登录网站并通过身份验证
    • 将用户写入令牌数据库
    • 将令牌存储在 cookie 中并过期
  3. 后续请求从 cookie 中读取令牌并针对令牌数据库进行验证
  4. 当用户注销时,cookie 和数据库条目被删除
    • 如果用户没有正确注销,您必须在设定的时间间隔内清理令牌
于 2013-09-05T18:14:31.607 回答