如何使用成员资格提供程序在Sitecore用户管理器中创建用户

时间:2015-03-06 05:45:48

标签: c# asp.net sitecore

我在会员提供商中使用createuser()创建了一个特定角色和域的用户。但是在用户管理器中它显示消息data could not be loaded并且它没有显示我在用户管理器列表中创建的用户。

我让用户使用GetUsersInRole()并将用户绑定到网格控件,我创建的用户显示在网格中。

为什么它没有显示在用户管理器列表中;以及如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

请检查下一个代码以添加用户:

 public void AddUser(string domain, string firstName, string lastName, string email,string comment, string telephoneNumber, string jobTitle)
    {
        string userName = string.Concat(firstName, lastName);
        userName = string.Format(@"{0}\{1}", domain, userName);
      string newPassword = Membership.GeneratePassword(10, 3);

         try
        {
            if (!User.Exists(userName))
            {
                Membership.CreateUser(userName, newPassword, email);

                // Edit the profile information
                Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(userName, true);
                Sitecore.Security.UserProfile userProfile = user.Profile;
                userProfile.FullName = string.Format("{0} {1}", firstName, lastName);
                userProfile.Comment = comment;

                // Assigning the user profile template
                userProfile.SetPropertyValue("ProfileItemId", "{AE4C4969-5B7E-4B4E-9042-B2D8701CE214}");

                // Have modified the user template to also contain telephone number and job title.
                userProfile.SetCustomProperty("TelephoneNumber", telephoneNumber);
                userProfile.SetCustomProperty("JobTitle", jobTitle);
                userProfile.Save();
            }
        }
        catch (Exception ex)
        {
            Sitecore.Diagnostics.Log.Error(string.Format("Error in Client.Project.Security.UserMaintenance (AddUser): Message: {0}; Source:{1}", ex.Message, ex.Source), this);
        }
    } 

这里

答案 1 :(得分:0)

如果您使用此代码而不是createUser(),则此代码应该有效:

var fullName = Context.Domain.GetFullName(model.Email);

var user = Sitecore.Security.Accounts.User.Create(fullName, model.Password);
user.Profile.Email = model.Email;

user.Profile.Save();