0
sitecore 6.4で認証されたエクストラネットユーザーのロールを取得するにはどうすればよいですか?私はアクセスを制限する役割をチェックしようとしています。HttpHandlerのユーザーロールにログインしたSitecoreエクストラネットチェック
Sitecore.Context.User.Rolesは、デフォルトの\ Anonynousではなくエクストラネット\ WebsiteUserに戻ります。
更新日:ログイン直後に役割を確認すると、すべて正常に表示されます。しかし、それは私がSitecore.Context.User.Rolesが失われ、デフォルトの\ Anonynousにデフォルトであるhttphandler内から役割をチェックするときです。
は、エクストラネットユーザーコード作成:
using (new SecurityStateSwitcher(SecurityState.Disabled))
{
var domainUsername = Context.Domain.GetFullName(user.Email);
Sitecore.Security.Accounts.User sitecoreUser = Sitecore.Security.Accounts.User.Create(domainUsername, user.Password);
Database dbCore = Factory.GetDatabase("core");
Item profileItem = dbCore.GetItem(CustomUserProfilePath);
List<Role> roles = Sitecore.Context.Domain.GetRoles().Where(role => role.Name == "extranet\WebsiteUser").ToList();
if (roles.Any())
{
sitecoreUser.Roles.Add(roles.First());
}
sitecoreUser.Profile.ProfileItemId = profileItem.ID.ToString();
sitecoreUser.Profile.FullName = string.Format("{0} {1}", user.FirstName, user.LastName);
sitecoreUser.Profile.Email = user.Email;
sitecoreUser.Profile.Comment = "Created by the register system";
sitecoreUser.Profile.Save();
}