Ric*_*ona 5 sitecore sitecore-mvc sitecore8
我需要从外部服务验证用户凭据,因此我正在使用VirtualUser身份验证.
BuildVirtualUser,检查要设置给他的角色,保存用户配置文件,然后使用该名称登录.我遇到了一个问题,即每天登录,使用相同的凭据,Sitecore会在体验资料中创建一个新用户.
我需要在代码中更改以确保通过虚拟用户登录,Sitecore获取用户的旧体验配置文件?
我正在考虑使用相同的通用密码在sitecore中创建用户.而不是使用虚拟用户,并直接与sitecore进行身份验证.那是对的吗?
这是我的代码:
Sitecore.Security.Accounts.User user = Sitecore.Security.Authentication.AuthenticationManager.BuildVirtualUser(sitecoreUser, true);
string roleName = @"newRole\User";
Sitecore.Security.Accounts.Role demoRole = Sitecore.Security.Accounts.Role.FromName(roleName);
if (Sitecore.Security.Accounts.Role.Exists(roleName) && !demoRole.IsMember(user, true, false))
{
user.Roles.Add(Sitecore.Security.Accounts.Role.FromName(roleName));
}
user.Profile.Name = name;
user.Profile.Email = email;
user.Profile.FullName = fullname;
user.Profile.Save();
Sitecore.Security.Authentication.AuthenticationManager.Login(user.Name);
Tracker.Initialize();
Run Code Online (Sandbox Code Playgroud)
代码看起来不错,但您错过了一件重要的事情:识别您的用户/联系人。
您需要添加下一行代码:
Tracker.Current.Session.Identify(email);
Run Code Online (Sandbox Code Playgroud)
请查看下一个链接,了解有关如何识别联系人的更多信息: