Установить пароль с шифрованием PBKDF2 в kentico 10 - PullRequest
3 голосов
/ 27 июня 2019

Мне нужно загрузить около 500 пользователей в таблицу CMS.User (FirstName, LastName, UserName, Email, UserPassword и UserPasswordFormat) из листа Excel.

Как зашифровать пароль и сохранить его вбаза данных?

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);

1 Ответ

3 голосов
/ 27 июня 2019

В вашем коде вместо

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

вы должны использовать:

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

Kentico также использует настройку приложения CMSHashStringSalt для хеширования паролей.

...