DNN网站的SSO

时间:2015-09-04 19:20:25

标签: single-sign-on dotnetnuke dotnetnuke-7

我的要求是:

我有一个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,但我还没有找到任何一个。

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

1 个答案:

答案 0 :(得分:2)

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

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

  • websiteA = portal 0,别名websiteA.com(小学)
  • websiteB =门户网站1,别名websiteA.com/b(主要)和别名websiteB.com重定向别名
  • websiteC =门户2,别名websiteA.com/c(主要)和别名websiteC.com重定向别名

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

以下是如何在没有DNN社区的用户界面的情况下配置它:

在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