2012-03-04 3 views
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(); 
     } 

答えて

0

を私は今、IIS7のURLを使用して解決策ではなく、web.configファイルを通じてハンドラをルーティングするのに書き換える発見しました。これにより、ログインしたユーザーの役割を確認できるように、Sitecore.Contextが保持されます。

関連する問題