c# - 在 kentico 10 中使用 PBKDF2 加密设置密码
问题描述
我必须从 Excel 表中上传大约 500 个用户到表格 CMS.User(FirstName、LastName、UserName、Email、UserPassword 和 UserPasswordFormat)中。
如何加密密码并保存在数据库中?
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);
解决方案
在您的代码中,而不是
newUser.SetValue("UserPassword", userDto.UserPassword);
你应该使用:
UserInfoProvider.SetUserInfo(newUser); // saves user to DB
UserInfoProvider.SetPassword(newUser, userDto.UserPassword); // saves hashed password
Kentico 也使用 CMSHashStringSalt 应用程序设置来散列密码。
推荐阅读
- kubernetes - Pod 无法在来自两个不同子网的节点上生成的 kubernetes 集群中相互 ping
- javascript - 验证动态 XML 结构
- python - Python 更新 Google 表格
- javascript - Electron:我是否需要以 HTML 而不是 javascript 导入库?
- python - 在 matplotlib 中隐藏部分轴
- swift - 水平 UIScrollView 设置内容偏移不作为内容更新
- docker - 尝试将 env args 从 openshift 配置获取到 Dockerfile,然后使用 envsubst 进入 nginx 配置
- amazon-web-services - 如何为外部访问配置 AWS ECS 服务发现?
- python - 如何在python中写入docx表的序列号
- python - 在这个特定示例中,如何将 O(n^2) 算法转换为 O(n)?