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:

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:

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:

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:

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:

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:

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:

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:

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?

Increase your Sitefinity skills by signing up for our free trainings. Get Sitefinity-certified at Progress Education Community to boost your credentials.

Get started with Integration Hub | Sitefinity Cloud | Sitefinity SaaS

This free lesson teaches administrators, marketers, and other business professionals how to use the Integration hub service to create automated workflows between Sitefinity and other business systems.

Web Security for Sitefinity Administrators

This free lesson teaches administrators the basics about protecting yor Sitefinity instance and its sites from external threats. Configure HTTPS, SSL, allow lists for trusted sites, and cookie security, among others.

Foundations of Sitefinity ASP.NET Core Development

The free on-demand video course teaches developers how to use Sitefinity .NET Core and leverage its decoupled architecture and new way of coding against the platform.

Was this article helpful?

Next article

ILoginCompletedEvent