私は外部サービスからユーザーの資格情報を検証する必要があるため、私はVirtualUser
認証を使用しています。Sitecore仮想ユーザーログインエクスペリエンスプロファイル
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();
おかげで、私はまた別の質問をしました。仮想ユーザーが既に存在するかどうかを知ることは可能でしょうか?既にルールが実装されているかどうかを知る。またはこれを行うには、sitecoreでユーザーを作成する方が良いですか? 私は、彼らのシステムを通して認証する必要があり、初めてかどうかを知る必要があるでしょう。 –
いくつかのテストの後、エラーが発生しました。 Tracker.Initialize()の後にあなたが言ったコードを挿入しました。エラーが発生しました。 "this.Interactionはnullであってはいけません" –