Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Bo Jacobsen 438 posts 1818 karma points
    Nov 28, 2019 @ 13:02
    Bo Jacobsen
    0

    How to change member password from controller without the old password

    Hi all.

    Using Umbraco 7.15.3

    It will simply not letting me change a members password from a controller. The code execution without any exceptions, but no changes are made.

    I have tried this

    // In Surface controller
    var member = ApplicationContext.Current.Services.MemberService.GetById(1117);
    var changingPasswordModel = new Umbraco.Web.Models.ChangingPasswordModel()
    {
        OldPassword = null,
        NewPassword = "1234"
    };
    Members.ChangePassword(member.Username, changingPasswordModel, "UmbracoMembershipProvider");
    
    // Web.Config
    <add name = "UmbracoMembershipProvider" type="Umbraco.Web.Security.Providers.MembersMembershipProvider, Umbraco" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="4" useLegacyEncoding="false" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Member" passwordFormat="Hashed" allowManuallyChangingPassword="true" />
    

    And this

    // In Surface controller
    var member = ApplicationContext.Current.Services.MemberService.GetById(1117);
    var changingPasswordModel = new Umbraco.Web.Models.ChangingPasswordModel()
    {
        OldPassword = null,
        NewPassword = "1234"
    };
    Members.ChangePassword(member.Username, changingPasswordModel, new Umbraco.Web.Security.Providers.MembersMembershipProvider(ApplicationContext.Current.Services.MemberService));
    
    // Web.Config
    <add name = "UmbracoMembershipProvider" type="Umbraco.Web.Security.Providers.MembersMembershipProvider, Umbraco" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="4" useLegacyEncoding="false" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Member" passwordFormat="Hashed" allowManuallyChangingPassword="true" />
    

    And this

    // In Surface controller
    var member = ApplicationContext.Current.Services.MemberService.GetById(1117);
    var changingPasswordModel = new Umbraco.Web.Models.ChangingPasswordModel()
    {
        OldPassword = null,
        NewPassword = "1234",
        Reset = true
    };
    Members.ChangePassword(member.Username, changingPasswordModel, new Umbraco.Web.Security.Providers.MembersMembershipProvider(ApplicationContext.Current.Services.MemberService));
    
    // Web.Config
    <add name = "UmbracoMembershipProvider" type="Umbraco.Web.Security.Providers.MembersMembershipProvider, Umbraco" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="4" useLegacyEncoding="false" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Member" passwordFormat="Hashed" allowManuallyChangingPassword="true" />
    

    Any ideas?

  • Bo Jacobsen 438 posts 1818 karma points
    Dec 02, 2019 @ 10:03
    Bo Jacobsen
    101

    Okay i found out.

    I actuelly started with ApplicationContext.Current.Services.MemberService.SavePassword(member, "newPassword"); But that throwed an exception, then i went to to use Members.ChangePassword() method.

    After i changed allowManuallyChangingPassword to true in the web.config ApplicationContext.Current.Services.MemberService.SavePassword(member, "newPassword"); worked.

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies