Programmatically create Umbraco Members and set Password

By Markus Johansson
2026-03-15

Over the last months, I've been working on moving websites from Umbraco 13 up to Umbraco 17. I had a really hard time to find good documentation on how to work with Members so I figured I'll write a short blog post to fill some of the "gaps" I experienced in the documentation.

What is Member in Umbraco?

A Member in Umbraco is an external or frontend user. In other words, this is the kind of account you would use for things like a customer area, intranet login, gated content, forums, and similar functionality on the public-facing site.

Working with Members programmatically

When working with Umbraco Members programmatically you need to familiarize your self with the IMemberService and the IMemberManager.

  • IMemberService is used to work with the IMember object, set username, email and update custom properties.
  • IMemberManager is used to perform login, get current member and set password.

Here is a code sample that will create a member programmatically and set the password programmatically.

public class MemberRegistrationService
{
    private readonly IMemberService _memberService;
    private readonly IMemberManager _memberManager;
    private readonly IPasswordHasher _passwordHasher;

    public MemberRegistrationService(
        IMemberService memberService,
        IMemberManager memberManager,
        IPasswordHasher passwordHasher
        )
    {
        _memberService = memberService;
        _memberManager = memberManager;
        _passwordHasher = passwordHasher;
    }

    public async Task<IMember> CreateMemberAsync(string email, string password, string name)
    {
        var member = _memberService.CreateMember(
            email,
            email,
            name,
            "Member"); // or Member.ModelTypeAlias with ModelsBuilder
        
        member.IsApproved = true;

        _memberService.Save(member);

        // Optionally add to a role
        _memberService.AssignRole(member.Id, "Member"); 

        // Set password
        var memberIdentity = await _memberManager.FindByIdAsync(member.Id.ToString());
        var passwordResult = await _memberManager.AddPasswordAsync(memberIdentity!, password);

        // Alternative way of setting password
        member.RawPasswordValue = _passwordHasher.HashPassword(password);

        return member;
    }
}

 

..

 

 






More blog posts



15 januari 2021

Umbraco and MiniProfiler