User events

Sitefinity CMS users are users who can conduct content management and/or administrative tasks within a given website project. When the website administrator creates, deletes, or modifies a user, a variety of user events are fired. You can subscribe to any of the user events listed below.

For more information about managing and administering users, see Overview: Users.

UserEventBase

This is the base class for events that notifies for changes in the Sitefinity CMS users. Subscribe using the following code:

C#
using System;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Security.Events;
using Telerik.Sitefinity.Services;

namespace SitefinityWebApp
{
   public class Global : System.Web.HttpApplication
   {
       protected void Application_Start(object sender, EventArgs e)
       {
           Bootstrapper.Bootstrapped += Bootstrapper_Bootstrapped;
       }

       private void Bootstrapper_Bootstrapped(object sender, EventArgs e)
       {
           EventHub.Subscribe<UserEventBase>(evt => UserEventHandler(evt));
       }

       public void UserEventHandler(UserEventBase eventInfo)
       {
           var userId = eventInfo.UserId;
           var userName = eventInfo.UserName;
           var membershipProviderName = eventInfo.MembershipProviderName;
           var isApproved = eventInfo.IsApproved;
           var email = eventInfo.Email;
           var password = eventInfo.Password;
           var passwordFormat = eventInfo.PasswordFormat;
       }
   }
}

In the event handler, you can access the following information:

  • ID of the user
  • Username
  • Name of the membership provider
  • Approval status of the user
  • Email of the user
  • Password of the user
  • Password format

UserCreating

This event fires when a Sitefinity CMS user is being created and is pending approval. Use the following code to subscribe:

C#
using System;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Security.Events;
using Telerik.Sitefinity.Services;

namespace SitefinityWebApp
{
   public class Global : System.Web.HttpApplication
   {
       protected void Application_Start(object sender, EventArgs e)
       {
           Bootstrapper.Bootstrapped += Bootstrapper_Bootstrapped;
       }

       private void Bootstrapper_Bootstrapped(object sender, EventArgs e)
       {
           EventHub.Subscribe<UserCreating>(evt => UserCreatingEventHandler(evt));
       }

       public void UserCreatingEventHandler(UserCreating eventInfo)
       {
           var user = eventInfo.User;
       }
   }
}

In the event handler, you can access the user which is pending for creation.

UserCreated

This event fires when a Sitefinity CMS user is already created. Use the following code to subscribe:

C#
using System;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Security.Events;
using Telerik.Sitefinity.Services;

namespace SitefinityWebApp
{
   public class Global : System.Web.HttpApplication
   {
       protected void Application_Start(object sender, EventArgs e)
       {
           Bootstrapper.Bootstrapped += Bootstrapper_Bootstrapped;
       }

       private void Bootstrapper_Bootstrapped(object sender, EventArgs e)
       {
           EventHub.Subscribe<UserCreated>(evt => UserCreatedEventHandler(evt));
       }

       public void UserCreatedEventHandler(UserCreated eventInfo)
       {
           // your logic
       }

   }
}

UserUpdating

This event fires when a Sitefinity CMS user is being modified. Use the following code to subscribe:

C#
using System;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Security.Events;
using Telerik.Sitefinity.Services;

namespace SitefinityWebApp
{
   public class Global : System.Web.HttpApplication
   {
       protected void Application_Start(object sender, EventArgs e)
       {
           Bootstrapper.Bootstrapped += Bootstrapper_Bootstrapped;
       }

       private void Bootstrapper_Bootstrapped(object sender, EventArgs e)
       {
           EventHub.Subscribe<UserUpdating>(evt => UserUpdatingEventHandler(evt));
       }

       public void UserUpdatingEventHandler(UserUpdating eventInfo)
       {
           var approvalStatusChanged = eventInfo.ApprovalStatusChanged;
           var passwordChanged = eventInfo.PasswordChanged;
           var user = eventInfo.User;
       }
   }
}

In the event handler, you can access the following information:

  • A flag which indicates whether the approval status of a user is changed.
  • A flag which indicates whether the password of a user is being changed.
  • The user which is pending for an update.

UserUpdated

This event fires when a Sitefinity CMS user is already modified. Use the following code to subscribe:

C#
using System;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Security.Events;
using Telerik.Sitefinity.Services;

namespace SitefinityWebApp
{
   public class Global : System.Web.HttpApplication
   {
       protected void Application_Start(object sender, EventArgs e)
       {
           Bootstrapper.Bootstrapped += Bootstrapper_Bootstrapped;
       }

       private void Bootstrapper_Bootstrapped(object sender, EventArgs e)
       {
           EventHub.Subscribe<UserUpdated>(evt => UserUpdatedEventHandler(evt));
       }

       public void UserUpdatedEventHandler(UserUpdated eventInfo)
       {
           var approvalStatusChanged = eventInfo.ApprovalStatusChanged;
           var passwordChanged = eventInfo.PasswordChanged;
       }
   }
}

In the event handler, you can access the following information:

  • A flag which indicates whether the approval status of a user is changed.
  • A flag which indicates whether the password of a user is changed.

UserDeleting

This event fires when a Sitefinity CMS user is being deleted. Use the following code to subscribe:

C#
using System;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Security.Events;
using Telerik.Sitefinity.Services;

namespace SitefinityWebApp
{
   public class Global : System.Web.HttpApplication
   {
       protected void Application_Start(object sender, EventArgs e)
       {
           Bootstrapper.Bootstrapped += Bootstrapper_Bootstrapped;
       }

       private void Bootstrapper_Bootstrapped(object sender, EventArgs e)
       {
           EventHub.Subscribe<UserDeleting>(evt => UserDeletingEventHandler(evt));
       }

       public void UserDeletingEventHandler(UserDeleting eventInfo)
       {
           var user = eventInfo.User;
       }
   }
}

In the event handler, you can access the user which is pending for delete.

UserDeleted

This event fires when a Sitefinity CMS user is already deleted. Use the following code to subscribe:

C#
using System;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Security.Events;
using Telerik.Sitefinity.Services;

namespace SitefinityWebApp
{
   public class Global : System.Web.HttpApplication
   {
       protected void Application_Start(object sender, EventArgs e)
       {
           Bootstrapper.Bootstrapped += Bootstrapper_Bootstrapped;
       }

       private void Bootstrapper_Bootstrapped(object sender, EventArgs e)
       {
           EventHub.Subscribe<UserDeleted>(evt => UserDeletedEventHandler(evt));
       }

       public void UserDeletedEventHandler(UserDeleted eventInfo)
       {
           // your logic
       }
   }
}

Your event handler should look like this.

PasswordRecoveryRequested

This event fires when a password recovery link was sent to a Sitefinity CMS user email. Use the following code to subscribe:

C#
using System;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Security.Events;
using Telerik.Sitefinity.Services;

namespace SitefinityWebApp
{
   public class Global : System.Web.HttpApplication
   {
       protected void Application_Start(object sender, EventArgs e)
       {
           Bootstrapper.Bootstrapped += Bootstrapper_Bootstrapped;
       }

       private void Bootstrapper_Bootstrapped(object sender, EventArgs e)
       {
           EventHub.Subscribe<PasswordRecoveryRequested>(evt => PasswordRecoveryRequestedEventHandler(evt));
       }

       public void PasswordRecoveryRequestedEventHandler(PasswordRecoveryRequested eventInfo)
       {
           // your logic
       }
   }
}
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.