---
title: Implementing membership using Page Builder widgets
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

This module covers the process of developing membership functionality for your Xperience by Kentico website channels.

It includes technical guides about:

- Creating widgets for flexible member registration and sign-in
- Specifying a relationship between members and contacts, and synchronizing these entities
- Building a profile page, where members can update their personal information
- Designating and enforcing member-only areas of the website, which cannot be viewed by unauthenticated visitors

## Before you start

These hands-on materials require the following:

- Familiarity with [C#](https://learn.microsoft.com/en-us/dotnet/csharp/), [.NET Core](https://learn.microsoft.com/en-us/dotnet/), [Dependency injection](https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection), and the [MVC pattern](https://learn.microsoft.com/en-us/aspnet/core/mvc/overview).
- A running instance of Xperience by Kentico, preferably [29.6.1](https://docs.kentico.com/changelog.md) or higher.

  > **Note:**&#x20;
  >
  >  Some features covered in the Training guides may not work in older versions. 
- Basic knowledge of [\*.NET Identity\*](https://learn.microsoft.com/en-us/aspnet/core/security/authentication/identity).
- Understanding how the Xperience [Page Builder](https://docs.kentico.com/documentation/developers-and-admins/development/builders/page-builder.md) works and what developing [Page Builder components](https://docs.kentico.com/guides/development/page-builder.md) looks like.

> **Info:** **Code samples**
>
> You can find a project with completed, working versions of code samples from this module and others in the [finished branch](https://github.com/Kentico/xperience-by-kentico-training-guides/tree/finished) of the _Training guides_ repository. This branch also includes membership functionality that is not associated with any guides.
>
> The [main branch](https://github.com/Kentico/xperience-by-kentico-training-guides) of the repository provides a starting point to code along with these materials.
>
> The code samples in this series are for [.NET 8](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8/overview) only.
>
> They come from a project that uses [implicit using directives](https://learn.microsoft.com/en-us/dotnet/core/project-sdk/overview#implicit-using-directives). You may need to add additional `using` directives to your code if your project does not use this feature.

> **Warning:** Some of the examples in this series tie in with custom fields from our [training guide about customizing contacts](https://docs.kentico.com/guides/development/customizations-and-integrations/add-custom-contact-field.md).
>
> If you have not already gone through this guide, feel free to consider those parts optional.
