Single sign on DNN通过Web服务单点登录

Single sign on DNN通过Web服务单点登录,single-sign-on,dotnetnuke,Single Sign On,Dotnetnuke,我已经为我的DNN站点实现了SingleSignOn,比如www.example1.com。还有另一个网站叫www.example2.com。这两个站点都将重定向到一个公共登录页面,该页面使用Web服务从外部数据库对用户进行身份验证 问题是,当我单击example1.com中的登录按钮时,用户将被重定向到公共sso登录页面,在成功验证后,他将被重定向回原始站点。如果我打开一个新选项卡并输入example2.com的url,则表示该用户未登录 但是,如果我单击example2.com中的登录按钮,

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

问题是,当我单击example1.com中的登录按钮时,用户将被重定向到公共sso登录页面,在成功验证后,他将被重定向回原始站点。如果我打开一个新选项卡并输入example2.com的url,则表示该用户未登录

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

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


我如何处理这个问题?非常感谢您的帮助。

我做了类似的事情

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

以下是我们的工作原理:

  • 两个站点在重定向之前都必须检查cookie/Token
  • 用户登录到站点并通过身份验证
    • 将用户写入令牌数据库
    • 在cookie中存储过期的令牌
  • 后续请求从cookie读取令牌,并根据令牌数据库进行验证
  • 当用户注销时,cookie和数据库条目将被删除
    • 若用户未正确注销,则必须在设置的时间间隔内清理令牌