SplatDev.Umbraco.Membership
2.0.5
dotnet add package SplatDev.Umbraco.Membership --version 2.0.5
NuGet\Install-Package SplatDev.Umbraco.Membership -Version 2.0.5
<PackageReference Include="SplatDev.Umbraco.Membership" Version="2.0.5" />
<PackageVersion Include="SplatDev.Umbraco.Membership" Version="2.0.5" />
<PackageReference Include="SplatDev.Umbraco.Membership" />
paket add SplatDev.Umbraco.Membership --version 2.0.5
#r "nuget: SplatDev.Umbraco.Membership, 2.0.5"
#:package SplatDev.Umbraco.Membership@2.0.5
#addin nuget:?package=SplatDev.Umbraco.Membership&version=2.0.5
#tool nuget:?package=SplatDev.Umbraco.Membership&version=2.0.5
SplatDev.Umbraco.Membership
Membership utilities for Umbraco 13 and Umbraco 17 — assign members to groups and manage opt-in preferences via IMemberService.
Compatibility
| .NET | Umbraco | Package Version |
|---|---|---|
| 8.0 | 13 | 2.0.0 |
| 10.0 | 17 | 2.0.0 |
Installation
dotnet add package SplatDev.Umbraco.Membership
What's implemented
RegisterExtensions
A single service class that wraps IMemberService to provide two helper methods:
AssignMemberGroup(string email, string group)— assigns a member (looked up by email) to a group/role. UsesIMemberService.AssignRole(). Silently logs errors if the assignment fails.QuoteInABoxOptIn(string email)— looks up a member by email and sets the custom propertyquoteInABoxtotrue. Saves the member viaIMemberService.Save().
Configuration
DI registration
This package does not auto-register via IComposer. Register RegisterExtensions manually in your Umbraco composer or startup:
using SplatDev.Umbraco.Membership.Extensions;
public class MembershipComposer : IComposer
{
public void Compose(IUmbracoBuilder builder)
{
builder.Services.AddScoped<RegisterExtensions>();
}
}
RegisterExtensions depends on IMemberService (provided by Umbraco) and ILogger<RegisterExtensions> (provided by the framework). Both are satisfied automatically via DI when you register the class.
Appsettings
No appsettings keys are required. The package does not read any configuration.
Usage
using SplatDev.Umbraco.Membership.Extensions;
public class RegistrationService
{
private readonly RegisterExtensions _memberExtensions;
public RegistrationService(RegisterExtensions memberExtensions)
{
_memberExtensions = memberExtensions;
}
public async Task OnMemberRegistered(string email)
{
// Assign to a role
_memberExtensions.AssignMemberGroup(email, "Members");
// Opt-in to content feature
_memberExtensions.QuoteInABoxOptIn(email);
}
}
Dependencies
| Package | Purpose |
|---|---|
Umbraco.Cms.Core |
IMemberService |
Microsoft.Extensions.Logging |
Error logging |
Caveats
- No automatic DI registration. You must register
RegisterExtensionsin your own composer. There is noAddMembership()extension method. QuoteInABoxOptInsets a hardcoded property name ("quoteInABox") and a hardcoded value (true). If your member type uses a different alias or type, you will need to customize this method.- Silent failures. Both methods catch
Exceptionand only log the error — they do not re-throw. Assumption is that membership setup failures should not block the calling flow.
SplatDev.Umbraco.Membership — part of the SplatDev.Umbraco.Plugins suite. Licensed under MIT. © SplatDev Ltda.
Changelog
2.0.5 — 2026-08-24
Removes a dashboard screenshot that showed an error toast. It was captured against a site where this plugin's API was unreachable, so it advertised a broken dashboard. No screenshot is better than a misleading one; a replacement will be taken against a working install.
2.0.4 — 2026-08-24
Package metadata only: the listing now carries an icon and search tags, and the project and repository links point at the organisation that actually hosts this code. No code changes.
2.0.2 — 2026-08-22
- This package's README now reaches NuGet. The publish workflow discovered packages by a list of name patterns, and this one matched none of them, so it was never built or pushed by CI — the version on NuGet was placed there by hand before the README was wired up, and no release could refresh it. Discovery is now by prefix, so the package ships whenever the repo is tagged.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Umbraco.Cms.Api.Management (>= 17.3.4)
- Umbraco.Cms.Core (>= 17.3.4)
- Umbraco.Cms.Infrastructure (>= 17.3.4)
- Umbraco.Cms.Web.Common (>= 17.3.4)
- Umbraco.Cms.Web.Website (>= 17.3.4)
-
net8.0
- Umbraco.Cms.Core (>= 13.12.0)
- Umbraco.Cms.Infrastructure (>= 13.12.0)
- Umbraco.Cms.Web.BackOffice (>= 13.12.0)
- Umbraco.Cms.Web.Common (>= 13.12.0)
- Umbraco.Cms.Web.Website (>= 13.12.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.5 | 74 | 8/24/2026 |