Sitecore:如何以及为何在CD中使用Sitecore虚拟用户(内容交付)

时间:2016-03-10 10:47:00

标签: asp.net security sitecore sitecore8

我遇到过几个sitecore实现,其中虚拟用户已经在CD(内容交付)上使用,其中网站具有成员资格(登录状态)。

我们正在将站点从java CMS迁移到sitecore,并使用azure ADB2C和社交登录提供程序进行登录状态。登录后,用户将被重定向到带有令牌的Sitecore CD。 根据用户会员类型,我们需要在整个网站上显示隐藏菜单项和小部件。

我知道使用虚拟用户的一个好处是没有使用sitecore用户的许可证费用。

感谢有人可以帮助我理解下面的内容:

  1. 我们还有哪些其他方案可以在CD中使用虚拟用户?
  2. 使用虚拟用户有什么好处,因为我们可以在Session中管理用户详细信息?
  3. 在CD中使用虚拟用户有什么缺点?
  4. 使用虚拟用户和sitecore角色来保护菜单项和页面是否是最佳选择?或者从asp.net linq查询等应用安全性?
  5. 感谢。

2 个答案:

答案 0 :(得分:1)

虚拟用户的概念可能与您的理解略有不同。将它们视为用户的临时表示,可以从任何地方获取数据,例如你的天蓝色供应商。

没有虚拟用户,默认情况下所有用户详细信息都存储在核心aspnet成员资格表中。虚拟用户允许人们“登录”,但不会创建关联的数据库记录。

一个常见的情况,听起来就是你正在使用的,是用户和角色数据保存在别处(azure / ad)。在查询此数据时,将使用关联的角色/配置文件等创建虚拟用户。然后,sitecore会评估此虚拟用户数据的安全性。

将它们用于会话之类的优点是所有sitecore安全层都将尊重其中保存的数据。如果你做了一些需要大量开发工作的自定义。

虚拟用户和基于许可证的用户之间没有链接 - 许可证通常允许并发编辑者访问cms,这与“用户”的概念不同。

答案 1 :(得分:1)

我们还有哪些其他方案可以在CD中使用虚拟用户?

  • 可以有几种情况,请考虑以下情况: 您有一个通用的身份验证机制,您可以将用户信息存储到某些其他应用程序已经使用的其他数据库中。现在,如果您希望用户能够使用相同的凭据登录而不在Sitecore应用程序中创建相同的用户,那么您可以使用此功能。针对其他数据库验证用户,如果有效,则在sitecore中创建虚拟用户。

使用虚拟用户有什么好处,因为我们可以在会话中管理用户详细信息?

  • 虚拟用户与Sitecore中的物理用户完全相同。它可以完成普通用户可以做的所有技巧。 另一个优点是,如果用户数量增加而不是在物理上创建用户,则可以使用虚拟用户。

在CD中使用虚拟用户有哪些缺点?

  • 正常使用时,在CD上使用虚拟用户没有任何缺点。考虑到共享环境,可扩展的高使用率,A​​ccessResultCache可能会以异常方式运行。
  • 另一个缺点是,如果CD服务器具有单独的Core数据库,则需要将Roles发布到CD数据库服务器。

使用虚拟用户和sitecore角色来保护菜单项和页面是否是最佳选择?或者从asp.net linq查询等应用安全性?

  • 我会说虚拟用户。这是一个干净整洁的方法。但你需要正确维护角色。

有关详细信息,请参阅:https://pratiksatikunvar.wordpress.com/2015/06/24/sitecore-security-module-in-production-site/