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 described below.

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

UserEventBase

This is the base class for events that notifies for changes in the Sitefinity CMS users. 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<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.