我真的需要一些帮助,但让我先解释一下我必须做些什么。
我有一个Sitecore
超级用户,其角色为Impersonation
。该用户应该能够模拟其他用户(所有用户都在extranet
域上),拥有个人资料信息和原始用户的角色。
这个超级用户的主要事情是他应该能够冒充他人并更改模拟帐户的设置或其他方面。
我尝试了不同的方法,但我似乎无法弄清楚这一点。创建虚拟用户是我思考的方式,但不能成功。
请注意,此解决方案中的每个用户都有一个分配给他们的自定义配置文件模板,必须在创建虚拟用户后保留。
另外,我有一些简单的问题。有谁知道这些虚拟用户在创建后位于何处?或者这些存储的时间是多少?是否需要以某种方式删除它们?
非常感谢任何可以提供帮助的人。
答案 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;
感谢。