为Sitecore解决方案创建虚拟用户 - 模拟目的

时间:2015-08-10 19:14:49

标签: sitecore virtual impersonation sitecore7

我真的需要一些帮助,但让我先解释一下我必须做些什么。

我有一个Sitecore超级用户,其角色为Impersonation。该用户应该能够模拟其他用户(所有用户都在extranet域上),拥有个人资料信息和原始用户的角色。

这个超级用户的主要事情是他应该能够冒充他人并更改模拟帐户的设置或其他方面。

我尝试了不同的方法,但我似乎无法弄清楚这一点。创建虚拟用户是我思考的方式,但不能成功。

请注意,此解决方案中的每个用户都有一个分配给他们的自定义配置文件模板,必须在创建虚拟用户后保留。

另外,我有一些简单的问题。有谁知道这些虚拟用户在创建后位于何处?或者这些存储的时间是多少?是否需要以某种方式删除它们?

非常感谢任何可以提供帮助的人。

2 个答案:

答案 0 :(得分:0)

有一个Sitecore.Security.Accounts.UserSwitcher课程。我不确定它是否会成功,但你可以试试:

Sitecore.Security.Accounts.UserSwitcher.Enter(someOtherUser)

然后

Sitecore.Security.Accounts.UserSwitcher.Exit()

using (UserSwitcher switcher = new UserSwitcher(...))
{
    ...
}

修改

要检查您是否处于UserSwitcher模式,请使用:

User impersonatedUser = UserSwitcher.CurrentValue;

如果impersonatedUser的值为空,则表示您未处于UserSwitcher模式。

答案 1 :(得分:0)

所以,

显然,解决方案实际上是使用虚拟用户,如下所示:

var virtualUser = AuthenticationManager.BuildVirtualUser(emailAddress, true);

SetBaseProfile();
SaveUserRoles();

// login the virtual user
AuthenticationManager.Login(virtualUser);

为了检查活跃用户是否是虚拟用户,我必须使用:

AuthenticationManager.GetActiveUser().RuntimeSetting.isVirtual;

感谢。