---
title: Membership
---

> 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).

List of examples:

### Creating a new membership

```csharp

// Creates a new membership object
MembershipInfo newMembership = new MembershipInfo();

// Sets the membership properties
newMembership.MembershipDisplayName = "New membership";
newMembership.MembershipName = "NewMembership";
newMembership.MembershipSiteID = SiteContext.CurrentSiteID;

// Saves the membership to the database
MembershipInfo.Provider.Set(newMembership);

```

[> Back to list of examples](#toc)

### Updating an existing membership

```csharp

// Gets the membership
MembershipInfo updateMembership = MembershipInfo.Provider.Get("NewMembership", SiteContext.CurrentSiteID);
if (updateMembership != null)
{
    // Updates the membership properties
    updateMembership.MembershipDisplayName = updateMembership.MembershipDisplayName.ToLower();

    // Saves the changes to the database
    MembershipInfo.Provider.Set(updateMembership);
}

```

[> Back to list of examples](#toc)

### Updating multiple memberships

```csharp

// Gets all memberships whose name starts with 'NewMembership'
var memberships = MembershipInfo.Provider.Get().WhereStartsWith("MembershipName", "NewMembership");

// Loops through individual memberships
foreach (MembershipInfo modifyMembership in memberships)
{
    // Updates the  membership properties
    modifyMembership.MembershipDisplayName = modifyMembership.MembershipDisplayName.ToUpper();

    // Saves the changes
    MembershipInfo.Provider.Set(modifyMembership);
}

```

[> Back to list of examples](#toc)

### Deleting a membership

```csharp

// Gets the membership
MembershipInfo deleteMembership = MembershipInfo.Provider.Get("NewMembership", SiteContext.CurrentSiteID);

if (deleteMembership != null)
{
    // Deletes the membership
    MembershipInfo.Provider.Delete(deleteMembership);
}

```

[> Back to list of examples](#toc)

### Including a role in a membership

```csharp

// Gets role and membership objects
RoleInfo role = RoleInfo.Provider.Get("Rolename", SiteContext.CurrentSiteID);
MembershipInfo membership = MembershipInfo.Provider.Get("NewMembership", SiteContext.CurrentSiteID);

if ((role != null) && (membership != null))
{             
    // Adds the role to the membership
    MembershipRoleInfo.Provider.Add(membership.MembershipID, role.RoleID);
}

```

[> Back to list of examples](#toc)

### Removing a role from a membership

```csharp

// Gets role and membership objects
RoleInfo role = RoleInfo.Provider.Get("Rolename", SiteContext.CurrentSiteID);
MembershipInfo membership = MembershipInfo.Provider.Get("NewMembership", SiteContext.CurrentSiteID);

if ((role != null) && (membership != null))
{
    // Removes the role from the membership
    MembershipRoleInfo.Provider.Remove(membership.MembershipID, role.RoleID);
}

```

[> Back to list of examples](#toc)

### Assigning a membership to a user

```csharp

// Gets user and membership objects
UserInfo user = UserInfo.Provider.Get("Username");
MembershipInfo membership = MembershipInfo.Provider.Get("NewMembership", SiteContext.CurrentSiteID);

if ((user != null) && (membership != null))
{
    // Grants the membership to the user (valid for 3 minutes)
    MembershipUserInfo.Provider.Add(membership.MembershipID, user.UserID, DateTime.Now.AddMinutes(3));
}

```

[> Back to list of examples](#toc)

### Removing a membership from a user

```csharp

// Gets user and membership objects
UserInfo user = UserInfo.Provider.Get("Username");
MembershipInfo membership = MembershipInfo.Provider.Get("NewMembership", SiteContext.CurrentSiteID);

if ((user != null) && (membership != null))
{
    // Removes the membership from the user
    MembershipUserInfo.Provider.Remove(membership.MembershipID, user.UserID);
}

```

[> Back to list of examples](#toc)

### Getting all valid memberships of a user

```csharp

// Gets the current user
UserInfo user = MembershipContext.AuthenticatedUser;

if (user != null)
{
    // Gets all valid memberships assigned to the user.
    // Requires a using statement for the 'System.Linq' namespace.
    // The boolean parameter of the IsInMembership method is set to true,
    // so both memberships on the current site and global memberships are loaded.
    var memberships = MembershipInfo.Provider.Get()
        .Where(membership => user.IsInMembership(membership.MembershipName, SiteContext.CurrentSiteName, true));

    // Loops through the memberships
    foreach (MembershipInfo membership in memberships)
    {
        // Process the membership
    }
}

```

[> Back to list of examples](#toc)
