1

AuthenticationManager.LoginがSitecore.Context.Userを変更しないのはなぜですか?常に匿名です。

   string userName = string.Format("{0}\\{1}", "extranet", "Login");     
            Sitecore.Security.Accounts.User virtualUser =  SC.Security.Authentication.AuthenticationManager.BuildVirtualUser(userName, isAuthenticated);

 Sitecore.Security.Authentication.AuthenticationManager.Login(virtualUser.Name);

またはこれは正しい動作ですか?この場合、Sitecoreはページへのアクセスをどのように処理しますか?ありがとう。

4

1 に答える 1

4

AuthenticationManager.Login()コンテキスト ユーザーを変更する必要があります。

ユーザーがログインしていることを確認しますか?

の結果値を確認できますAuthenticationManager.Login()。ユーザーがログインしている場合は true を返します。それ以外の場合は、引き続き匿名ユーザーが表示されます。

仮想ユーザーを作成し、ロールを割り当ててログインする方法のサンプル コードを次に示します。

Sitecore.Security.Accounts.User user = Sitecore.Security.Authentication
.AuthenticationManager.BuildVirtualUser(@"domain\user",true);

if(user!=null)
{
  string domainRole = @"domain\role";

  if(Sitecore.Security.Accounts.Role.Exists(domainRole))
  {
    user.Roles.Add(Sitecore.Security.Accounts.Role.FromName(domainRole));
  }

  Sitecore.Security.UserProfile profile = user.Profile;
  profile.FullName = "full name";
  profile.Save();
  Sitecore.Security.Authentication.AuthenticationManager.Login(user.Name);
}
于 2013-03-06T16:23:23.843 に答える