首页 文章

DNN网站的SSO

提问于
浏览
1

我的要求是:

我有一个DNN网站www.websiteA.com .

我想在相同的DNN安装上构建www.websiteB.com和www.websiteC.com . www.websiteB.com和www.websiteC.com应允许www.websiteA.com的用户使用相同的用户名和密码登录 .

当用户登录www.websiteA.com,然后导航到www.websiteB.com或www.websiteC.com时,他们不必再次登录,因为他们已经登录到主网站 .

我找到了允许我在这些网站之间共享用户的模块,这样他们就可以使用相同的凭据登录这三个网站中的任何一个 . 但是,我找不到同时将用户登录到所有网站的方法,因此用户无需再次登录 .

我宁愿这样做而不过多修改DNN源 . 由于所有三个网站都在同一个DNN安装,我希望有一种方法来共享身份验证cookie,但我还没有找到任何 .

任何人都能在这件事上为我提供更多指导吗?谢谢!

2 回答

  • 2

    我使用网站组功能为两个客户做了这个确切的事情,但它需要如上述评论中的警告 . 您必须为其他门户使用子别名,以便它们都在同一个域中 . 这是关键,因此用户的会话cookie可以跨门户使用 .

    这就是我设置门户别名的方法:

    • websiteA =门户网站0,别名websiteA.com(主要)

    • websiteB =门户1,别名websiteA.com/b(主要)和别名websiteB.com重定向别名

    • websiteC =门户2,别名websiteA.com/c(主要)和别名websiteC.com重定向别名

    用于管理组的站点组用户界面是Evoq功能,但后端是核心平台结构 .

    以下是在DNN社区中没有UI的情况下如何配置它:

    在PortalGroups表中创建记录:MasterPortalID = 0,PortalGroupName ='WebsiteA Group',AuthenticationDomain ='websiteA.com'

    现在更新Portals表中的PortalGroupID字段:

    • WHERE PortalID = 0,SET PortalGroupID = -1

    • WHERE PortalID = 1,SET PortalGroupID = 1(假设您添加的新PortalGroupID为1)

    • WHERE PortalID = 2,SET PortalGroupID = 1

  • 2

    您可以做的另一件事是编写自己的自定义DNN身份验证提供程序(http://www.dnnsoftware.com/community-blog/cid/134678/dotnetnuke-tips-and-tricks-12-creating-your-own-authentication-provider) .

    然后,让身份验证提供程序检查用户系统上的身份验证cookie . 如果cookie有效(且未过期),您可以自动登录 . 否则,将它们重定向到主登录屏幕 . 我这样做了,但另一个站点是基于Java的仪表板 .

相关问题