3

I have to upload around 500 users in the table CMS.User (FirstName, LastName, UserName, Email,UserPassword and UserPasswordFormat) from an Excel sheet.

How to encrypt the password and save it in the database?

var newUser = new UserInfo
{
    UserName = userDto.Email,
    UserEnabled = true,
    FirstName = userDto.FirstName,
    LastName = userDto.LastName,
    FullName = userDto.FirstName + " " + userDto.LastName,
    Email = userDto.Email,
    UserPasswordFormat = userDto.UserPasswordFormat,                
    SiteIndependentPrivilegeLevel = CMS.Base.UserPrivilegeLevelEnum.None
};

var newUserSettings = newUser.UserSettings ?? new UserSettingsInfo();

newUser.SetValue("UserPassword", userDto.UserPassword);

newUserSettings.UserPhone = userDto.PhoneNumber;

UserInfoProvider.SetUserInfo(newUser);

UserInfoProvider.AddUserToSite(newUser.UserName, site.SiteName);
Peter Kraume
  • 3,577
  • 2
  • 21
  • 39
krishnan
  • 33
  • 6

1 Answers1

3

In your code instead of

newUser.SetValue("UserPassword", userDto.UserPassword);

you should use:

UserInfoProvider.SetUserInfo(newUser); // saves user to DB
UserInfoProvider.SetPassword(newUser, userDto.UserPassword); // saves hashed password

Kentico uses CMSHashStringSalt app setting for hashing passwords as well.

Dmitry Bastron
  • 694
  • 3
  • 11