How to Transfer Users with active password policy












2















I want to transfer users from our QA environment to the PROD environment on Sitecore.NET 8.2 (rev. 170728).



It is totally fine if the users are deactivated and have a random password set. Unfortunately it seems like I cannot import any user since the default or empty password does not meet the password policy requirements. How can I import the users?



I do have access to the serialization files, so I can edit them if that helps. On other environments, I temporarily changed the config, but I cannot do that on PROD.










share|improve this question


















  • 1





    Have you tried using packages? When you use serialization, password is always set to b, with packages, random password is generated. Maybe try to set password policy requirements on QA first and then generate package with users?

    – Marek Musielak
    Nov 21 '18 at 7:54











  • Same applies to Packages, none of the users are imported. Is there a Setting of how random passwords are generated?

    – Markus
    Nov 21 '18 at 7:59






  • 2





    kb.sitecore.net/articles/242631 did you try this solution ?

    – Vlad Iobagiu
    Nov 21 '18 at 8:11











  • I have not. Since the users are not imported at all, I probably won't be able to sync the passwords. Anyway, I don't want to transfer users on DB Level since this is exactly what the user migration is supposed to do... at least that's what I think :-)

    – Markus
    Nov 21 '18 at 8:20
















2















I want to transfer users from our QA environment to the PROD environment on Sitecore.NET 8.2 (rev. 170728).



It is totally fine if the users are deactivated and have a random password set. Unfortunately it seems like I cannot import any user since the default or empty password does not meet the password policy requirements. How can I import the users?



I do have access to the serialization files, so I can edit them if that helps. On other environments, I temporarily changed the config, but I cannot do that on PROD.










share|improve this question


















  • 1





    Have you tried using packages? When you use serialization, password is always set to b, with packages, random password is generated. Maybe try to set password policy requirements on QA first and then generate package with users?

    – Marek Musielak
    Nov 21 '18 at 7:54











  • Same applies to Packages, none of the users are imported. Is there a Setting of how random passwords are generated?

    – Markus
    Nov 21 '18 at 7:59






  • 2





    kb.sitecore.net/articles/242631 did you try this solution ?

    – Vlad Iobagiu
    Nov 21 '18 at 8:11











  • I have not. Since the users are not imported at all, I probably won't be able to sync the passwords. Anyway, I don't want to transfer users on DB Level since this is exactly what the user migration is supposed to do... at least that's what I think :-)

    – Markus
    Nov 21 '18 at 8:20














2












2








2








I want to transfer users from our QA environment to the PROD environment on Sitecore.NET 8.2 (rev. 170728).



It is totally fine if the users are deactivated and have a random password set. Unfortunately it seems like I cannot import any user since the default or empty password does not meet the password policy requirements. How can I import the users?



I do have access to the serialization files, so I can edit them if that helps. On other environments, I temporarily changed the config, but I cannot do that on PROD.










share|improve this question














I want to transfer users from our QA environment to the PROD environment on Sitecore.NET 8.2 (rev. 170728).



It is totally fine if the users are deactivated and have a random password set. Unfortunately it seems like I cannot import any user since the default or empty password does not meet the password policy requirements. How can I import the users?



I do have access to the serialization files, so I can edit them if that helps. On other environments, I temporarily changed the config, but I cannot do that on PROD.







security user-management serialization






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 '18 at 7:43









MarkusMarkus

24928




24928








  • 1





    Have you tried using packages? When you use serialization, password is always set to b, with packages, random password is generated. Maybe try to set password policy requirements on QA first and then generate package with users?

    – Marek Musielak
    Nov 21 '18 at 7:54











  • Same applies to Packages, none of the users are imported. Is there a Setting of how random passwords are generated?

    – Markus
    Nov 21 '18 at 7:59






  • 2





    kb.sitecore.net/articles/242631 did you try this solution ?

    – Vlad Iobagiu
    Nov 21 '18 at 8:11











  • I have not. Since the users are not imported at all, I probably won't be able to sync the passwords. Anyway, I don't want to transfer users on DB Level since this is exactly what the user migration is supposed to do... at least that's what I think :-)

    – Markus
    Nov 21 '18 at 8:20














  • 1





    Have you tried using packages? When you use serialization, password is always set to b, with packages, random password is generated. Maybe try to set password policy requirements on QA first and then generate package with users?

    – Marek Musielak
    Nov 21 '18 at 7:54











  • Same applies to Packages, none of the users are imported. Is there a Setting of how random passwords are generated?

    – Markus
    Nov 21 '18 at 7:59






  • 2





    kb.sitecore.net/articles/242631 did you try this solution ?

    – Vlad Iobagiu
    Nov 21 '18 at 8:11











  • I have not. Since the users are not imported at all, I probably won't be able to sync the passwords. Anyway, I don't want to transfer users on DB Level since this is exactly what the user migration is supposed to do... at least that's what I think :-)

    – Markus
    Nov 21 '18 at 8:20








1




1





Have you tried using packages? When you use serialization, password is always set to b, with packages, random password is generated. Maybe try to set password policy requirements on QA first and then generate package with users?

– Marek Musielak
Nov 21 '18 at 7:54





Have you tried using packages? When you use serialization, password is always set to b, with packages, random password is generated. Maybe try to set password policy requirements on QA first and then generate package with users?

– Marek Musielak
Nov 21 '18 at 7:54













Same applies to Packages, none of the users are imported. Is there a Setting of how random passwords are generated?

– Markus
Nov 21 '18 at 7:59





Same applies to Packages, none of the users are imported. Is there a Setting of how random passwords are generated?

– Markus
Nov 21 '18 at 7:59




2




2





kb.sitecore.net/articles/242631 did you try this solution ?

– Vlad Iobagiu
Nov 21 '18 at 8:11





kb.sitecore.net/articles/242631 did you try this solution ?

– Vlad Iobagiu
Nov 21 '18 at 8:11













I have not. Since the users are not imported at all, I probably won't be able to sync the passwords. Anyway, I don't want to transfer users on DB Level since this is exactly what the user migration is supposed to do... at least that's what I think :-)

– Markus
Nov 21 '18 at 8:20





I have not. Since the users are not imported at all, I probably won't be able to sync the passwords. Anyway, I don't want to transfer users on DB Level since this is exactly what the user migration is supposed to do... at least that's what I think :-)

– Markus
Nov 21 '18 at 8:20










3 Answers
3






active

oldest

votes


















2














There is a config settings you can use called SerializationPassword.



Just use a config patch file with





<settings>
<setting name="SerializationPassword" value="Secret!@#" />
</settings>


and deserialize your serialized users after.



Sitecore will set all your new users' passwords to Secret!@# (or whatever value you want) instead of default b which is used when the setting is not present.



You can deserialize you users in PROD and then change they passwords to whatever you want manually.






share|improve this answer





















  • 1





    That sounds exactly like what I need! I will let you know if it worked.

    – Markus
    Nov 21 '18 at 9:58











  • It works, I can use Powershell to serialize & deserialize the users now. Thanks! One issue I had was that my SQL Server went down when I used a randomly generated strong password. The setting might be insufficiently escaped, so be careful. It might also be an unrelated issue on my DEV machine though.

    – Markus
    Nov 21 '18 at 10:48













  • Sitecore uses Membership.CreateUser(userName, password); by default. I don't see any reason why it could cause your SQL Server to go down even with the most sophisticated password. I suppose it was not related to deserialization of your users.

    – Marek Musielak
    Nov 21 '18 at 10:53



















0














Sitecore membership is based on ASP.Net membership. It means that you can use same approach for moving users from one DB to another. It is low-level actions with data that could give you better understanding how users/roles information is managed in Sitecore.




  1. Open Microsoft SQL Server Management Studio

  2. Connect to SQL server with Sitecore Core QA database

  3. Click right mouse button on Sitecore Core QA database, select "Generate scripts..." from context menu

  4. Select all tables, where name starts with "aspnet_" on first page of wizard

  5. Click "Advanced" button on second page of wizard. Select "Types of data to script":"Data only", "Script DROP and CREATE":"Script DROP and CREATE"

  6. Generate script

  7. Backup Sitecore Core Production Database

  8. Run script generated from Core QA database on Core Production database






share|improve this answer
























  • I know that I can transfer users on a DB level, but that is not what I want to do.

    – Markus
    Nov 21 '18 at 8:21



















0














One addition to Mareks answer:



Unfortunately the logic for passwords in package deserialization is completely different. It uses a class called PasswordGenerator, which is initialized with the following parameters:



MinimumCharacters = 6;
MaximumCharacters = 8;
ConsecutiveCharacters = false;
RepeatCharacters = true;
ExcludeSymbols = true;


So if your password policy requires longer passwords or symbols, this functionality is pretty much unusable.






share|improve this answer























    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "664"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f15060%2fhow-to-transfer-users-with-active-password-policy%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    There is a config settings you can use called SerializationPassword.



    Just use a config patch file with





    <settings>
    <setting name="SerializationPassword" value="Secret!@#" />
    </settings>


    and deserialize your serialized users after.



    Sitecore will set all your new users' passwords to Secret!@# (or whatever value you want) instead of default b which is used when the setting is not present.



    You can deserialize you users in PROD and then change they passwords to whatever you want manually.






    share|improve this answer





















    • 1





      That sounds exactly like what I need! I will let you know if it worked.

      – Markus
      Nov 21 '18 at 9:58











    • It works, I can use Powershell to serialize & deserialize the users now. Thanks! One issue I had was that my SQL Server went down when I used a randomly generated strong password. The setting might be insufficiently escaped, so be careful. It might also be an unrelated issue on my DEV machine though.

      – Markus
      Nov 21 '18 at 10:48













    • Sitecore uses Membership.CreateUser(userName, password); by default. I don't see any reason why it could cause your SQL Server to go down even with the most sophisticated password. I suppose it was not related to deserialization of your users.

      – Marek Musielak
      Nov 21 '18 at 10:53
















    2














    There is a config settings you can use called SerializationPassword.



    Just use a config patch file with





    <settings>
    <setting name="SerializationPassword" value="Secret!@#" />
    </settings>


    and deserialize your serialized users after.



    Sitecore will set all your new users' passwords to Secret!@# (or whatever value you want) instead of default b which is used when the setting is not present.



    You can deserialize you users in PROD and then change they passwords to whatever you want manually.






    share|improve this answer





















    • 1





      That sounds exactly like what I need! I will let you know if it worked.

      – Markus
      Nov 21 '18 at 9:58











    • It works, I can use Powershell to serialize & deserialize the users now. Thanks! One issue I had was that my SQL Server went down when I used a randomly generated strong password. The setting might be insufficiently escaped, so be careful. It might also be an unrelated issue on my DEV machine though.

      – Markus
      Nov 21 '18 at 10:48













    • Sitecore uses Membership.CreateUser(userName, password); by default. I don't see any reason why it could cause your SQL Server to go down even with the most sophisticated password. I suppose it was not related to deserialization of your users.

      – Marek Musielak
      Nov 21 '18 at 10:53














    2












    2








    2







    There is a config settings you can use called SerializationPassword.



    Just use a config patch file with





    <settings>
    <setting name="SerializationPassword" value="Secret!@#" />
    </settings>


    and deserialize your serialized users after.



    Sitecore will set all your new users' passwords to Secret!@# (or whatever value you want) instead of default b which is used when the setting is not present.



    You can deserialize you users in PROD and then change they passwords to whatever you want manually.






    share|improve this answer















    There is a config settings you can use called SerializationPassword.



    Just use a config patch file with





    <settings>
    <setting name="SerializationPassword" value="Secret!@#" />
    </settings>


    and deserialize your serialized users after.



    Sitecore will set all your new users' passwords to Secret!@# (or whatever value you want) instead of default b which is used when the setting is not present.



    You can deserialize you users in PROD and then change they passwords to whatever you want manually.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 21 '18 at 9:50

























    answered Nov 21 '18 at 9:23









    Marek MusielakMarek Musielak

    9,67011035




    9,67011035








    • 1





      That sounds exactly like what I need! I will let you know if it worked.

      – Markus
      Nov 21 '18 at 9:58











    • It works, I can use Powershell to serialize & deserialize the users now. Thanks! One issue I had was that my SQL Server went down when I used a randomly generated strong password. The setting might be insufficiently escaped, so be careful. It might also be an unrelated issue on my DEV machine though.

      – Markus
      Nov 21 '18 at 10:48













    • Sitecore uses Membership.CreateUser(userName, password); by default. I don't see any reason why it could cause your SQL Server to go down even with the most sophisticated password. I suppose it was not related to deserialization of your users.

      – Marek Musielak
      Nov 21 '18 at 10:53














    • 1





      That sounds exactly like what I need! I will let you know if it worked.

      – Markus
      Nov 21 '18 at 9:58











    • It works, I can use Powershell to serialize & deserialize the users now. Thanks! One issue I had was that my SQL Server went down when I used a randomly generated strong password. The setting might be insufficiently escaped, so be careful. It might also be an unrelated issue on my DEV machine though.

      – Markus
      Nov 21 '18 at 10:48













    • Sitecore uses Membership.CreateUser(userName, password); by default. I don't see any reason why it could cause your SQL Server to go down even with the most sophisticated password. I suppose it was not related to deserialization of your users.

      – Marek Musielak
      Nov 21 '18 at 10:53








    1




    1





    That sounds exactly like what I need! I will let you know if it worked.

    – Markus
    Nov 21 '18 at 9:58





    That sounds exactly like what I need! I will let you know if it worked.

    – Markus
    Nov 21 '18 at 9:58













    It works, I can use Powershell to serialize & deserialize the users now. Thanks! One issue I had was that my SQL Server went down when I used a randomly generated strong password. The setting might be insufficiently escaped, so be careful. It might also be an unrelated issue on my DEV machine though.

    – Markus
    Nov 21 '18 at 10:48







    It works, I can use Powershell to serialize & deserialize the users now. Thanks! One issue I had was that my SQL Server went down when I used a randomly generated strong password. The setting might be insufficiently escaped, so be careful. It might also be an unrelated issue on my DEV machine though.

    – Markus
    Nov 21 '18 at 10:48















    Sitecore uses Membership.CreateUser(userName, password); by default. I don't see any reason why it could cause your SQL Server to go down even with the most sophisticated password. I suppose it was not related to deserialization of your users.

    – Marek Musielak
    Nov 21 '18 at 10:53





    Sitecore uses Membership.CreateUser(userName, password); by default. I don't see any reason why it could cause your SQL Server to go down even with the most sophisticated password. I suppose it was not related to deserialization of your users.

    – Marek Musielak
    Nov 21 '18 at 10:53











    0














    Sitecore membership is based on ASP.Net membership. It means that you can use same approach for moving users from one DB to another. It is low-level actions with data that could give you better understanding how users/roles information is managed in Sitecore.




    1. Open Microsoft SQL Server Management Studio

    2. Connect to SQL server with Sitecore Core QA database

    3. Click right mouse button on Sitecore Core QA database, select "Generate scripts..." from context menu

    4. Select all tables, where name starts with "aspnet_" on first page of wizard

    5. Click "Advanced" button on second page of wizard. Select "Types of data to script":"Data only", "Script DROP and CREATE":"Script DROP and CREATE"

    6. Generate script

    7. Backup Sitecore Core Production Database

    8. Run script generated from Core QA database on Core Production database






    share|improve this answer
























    • I know that I can transfer users on a DB level, but that is not what I want to do.

      – Markus
      Nov 21 '18 at 8:21
















    0














    Sitecore membership is based on ASP.Net membership. It means that you can use same approach for moving users from one DB to another. It is low-level actions with data that could give you better understanding how users/roles information is managed in Sitecore.




    1. Open Microsoft SQL Server Management Studio

    2. Connect to SQL server with Sitecore Core QA database

    3. Click right mouse button on Sitecore Core QA database, select "Generate scripts..." from context menu

    4. Select all tables, where name starts with "aspnet_" on first page of wizard

    5. Click "Advanced" button on second page of wizard. Select "Types of data to script":"Data only", "Script DROP and CREATE":"Script DROP and CREATE"

    6. Generate script

    7. Backup Sitecore Core Production Database

    8. Run script generated from Core QA database on Core Production database






    share|improve this answer
























    • I know that I can transfer users on a DB level, but that is not what I want to do.

      – Markus
      Nov 21 '18 at 8:21














    0












    0








    0







    Sitecore membership is based on ASP.Net membership. It means that you can use same approach for moving users from one DB to another. It is low-level actions with data that could give you better understanding how users/roles information is managed in Sitecore.




    1. Open Microsoft SQL Server Management Studio

    2. Connect to SQL server with Sitecore Core QA database

    3. Click right mouse button on Sitecore Core QA database, select "Generate scripts..." from context menu

    4. Select all tables, where name starts with "aspnet_" on first page of wizard

    5. Click "Advanced" button on second page of wizard. Select "Types of data to script":"Data only", "Script DROP and CREATE":"Script DROP and CREATE"

    6. Generate script

    7. Backup Sitecore Core Production Database

    8. Run script generated from Core QA database on Core Production database






    share|improve this answer













    Sitecore membership is based on ASP.Net membership. It means that you can use same approach for moving users from one DB to another. It is low-level actions with data that could give you better understanding how users/roles information is managed in Sitecore.




    1. Open Microsoft SQL Server Management Studio

    2. Connect to SQL server with Sitecore Core QA database

    3. Click right mouse button on Sitecore Core QA database, select "Generate scripts..." from context menu

    4. Select all tables, where name starts with "aspnet_" on first page of wizard

    5. Click "Advanced" button on second page of wizard. Select "Types of data to script":"Data only", "Script DROP and CREATE":"Script DROP and CREATE"

    6. Generate script

    7. Backup Sitecore Core Production Database

    8. Run script generated from Core QA database on Core Production database







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 21 '18 at 8:15









    AntonAnton

    1,656213




    1,656213













    • I know that I can transfer users on a DB level, but that is not what I want to do.

      – Markus
      Nov 21 '18 at 8:21



















    • I know that I can transfer users on a DB level, but that is not what I want to do.

      – Markus
      Nov 21 '18 at 8:21

















    I know that I can transfer users on a DB level, but that is not what I want to do.

    – Markus
    Nov 21 '18 at 8:21





    I know that I can transfer users on a DB level, but that is not what I want to do.

    – Markus
    Nov 21 '18 at 8:21











    0














    One addition to Mareks answer:



    Unfortunately the logic for passwords in package deserialization is completely different. It uses a class called PasswordGenerator, which is initialized with the following parameters:



    MinimumCharacters = 6;
    MaximumCharacters = 8;
    ConsecutiveCharacters = false;
    RepeatCharacters = true;
    ExcludeSymbols = true;


    So if your password policy requires longer passwords or symbols, this functionality is pretty much unusable.






    share|improve this answer




























      0














      One addition to Mareks answer:



      Unfortunately the logic for passwords in package deserialization is completely different. It uses a class called PasswordGenerator, which is initialized with the following parameters:



      MinimumCharacters = 6;
      MaximumCharacters = 8;
      ConsecutiveCharacters = false;
      RepeatCharacters = true;
      ExcludeSymbols = true;


      So if your password policy requires longer passwords or symbols, this functionality is pretty much unusable.






      share|improve this answer


























        0












        0








        0







        One addition to Mareks answer:



        Unfortunately the logic for passwords in package deserialization is completely different. It uses a class called PasswordGenerator, which is initialized with the following parameters:



        MinimumCharacters = 6;
        MaximumCharacters = 8;
        ConsecutiveCharacters = false;
        RepeatCharacters = true;
        ExcludeSymbols = true;


        So if your password policy requires longer passwords or symbols, this functionality is pretty much unusable.






        share|improve this answer













        One addition to Mareks answer:



        Unfortunately the logic for passwords in package deserialization is completely different. It uses a class called PasswordGenerator, which is initialized with the following parameters:



        MinimumCharacters = 6;
        MaximumCharacters = 8;
        ConsecutiveCharacters = false;
        RepeatCharacters = true;
        ExcludeSymbols = true;


        So if your password policy requires longer passwords or symbols, this functionality is pretty much unusable.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 22 '18 at 14:10









        MarkusMarkus

        24928




        24928






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Sitecore Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f15060%2fhow-to-transfer-users-with-active-password-policy%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Create new schema in PostgreSQL using DBeaver

            Deepest pit of an array with Javascript: test on Codility

            Costa Masnaga