Umbraco 7.7.3以编程方式为新用户设置密码

时间:2018-01-26 13:26:50

标签: umbraco7

我使用 UmbracoContext.Application.Services.UserService 在umbraco 7.7.3中以编程方式创建用户(不是成员!),如下所示:

user = userService.CreateUserWithIdentity(someMailAddress, someMailAddress);
user.AddGroup((UserGroup)someGroup);
user.StartMediaId = someMediaId;
user.StartContentId = SomeContentId;
userService.Save(user);
userService.SavePassword(user,password);

正确创建了用户。

我没有使用方法 userService.CreateWithIdentity ,因为我需要提供散列密码,而且我不知道如何散列我想要给这些新用户的默认密码。< / p>

我正在尝试使用userService.SavePassword()方法,但我收到并且异常说:“此提供程序不支持手动更改密码

我在某处读过,我应该将UmbracoMembershipProvider元素中的 allowManuallyChangingPassword 属性设置为web.config中的 true ,但它对我不起作用。

任何帮助都将受到高度赞赏:)

1 个答案:

答案 0 :(得分:0)

UmbracoMembershipProvider是指会员,而非用户,因此在这种情况下,您应更改UsersMembershipProvider的此值。

您还可以尝试为新创建的用户设置RawPasswordValue属性:

user.RawPasswordValue = (Membership.Providers["UsersMembershipProvider"] as UsersMembershipProvider).HashPasswordForStorage(password);