Query users

This article contains the following code examples:

  • Query a single user
  • Query all users
  • Query user by first name

Query a single user

To query a specific user, you must perform the following:

  1. Get instance of the user manager.
    The manager is represented by the UserManager class. For more information about getting the instance, see For developers: Users.
  2. Get the user.
    To get the specified user, call the GetUser method of the UserManager class. It has two overloads:
    • GetUser(string username) – returns the user with the specified username.
    • GetUser(Guid id) – returns the user with the specified ID.

NOTE: To learn how to query the profile of the user, see Query user profiles.

Here is a code example:

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telerik.Sitefinity.Security;
using Telerik.Sitefinity.Security.Model;

namespace Telerik.Sitefinity.Documentation.CodeSnippets.DeepDive.Security.Users
{
    public partial class ManagingUsersSnippets
    {
        public static User GetUser(Guid userId)
        {
            UserManager userManager = UserManager.GetManager();

            User user = userManager.GetUser(userId);

            return user;
        }
    }
}

Query all users

To query all users, you must perform the following:

  1. Get instance of the user manager.
    The manager is represented by the UserManager class. For more information about getting the instance, see Users.
  2. Get all users.
    To get all users, call the GetUsers method of the UserManager class.

Here is a code example:

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telerik.Sitefinity.Security;
using Telerik.Sitefinity.Security.Model;

namespace Telerik.Sitefinity.Documentation.CodeSnippets.DeepDive.Security.Users
{
    public partial class ManagingUsersSnippets
    {
        public static List<User> GetAllUsers()
        {
            UserManager userManager = UserManager.GetManager();

            List<User> users = userManager.GetUsers().ToList();

            return users;
        }
    }
}

Query a user by first name

Normally you can get the user object by any of the User class properties. For example, in order to get a user by username, you can use the following code:

C#
using System.Linq;
using Telerik.Sitefinity.Security;
using Telerik.Sitefinity.Security.Model;

namespace Telerik.Sitefinity.Documentation.CodeSnippets.DeepDive.Security.Users
{
    public partial class ManagingUsersSnippets
    {
        public User GetUserByUsername(string username)
        {
            var userManager = UserManager.GetManager();
            var user = userManager.GetUsers().FirstOrDefault(u => u.UserName == username);
            return user;
        }
    }
}

However, some of the fields of the user are no longer properties of the User class like first name and last name. Instead, you should use the SitefinityProfile. Here is a sample code that demonstrates how to query all users by first name:

C#
using System.Linq;
using Telerik.Sitefinity.Security;
using Telerik.Sitefinity.Security.Model;

namespace Telerik.Sitefinity.Documentation.CodeSnippets.DeepDive.Security.Users
{
    public partial class ManagingUsersSnippets
    {
        public User GetUserByFirstName(string firstname)
        {
            var manager = UserProfileManager.GetManager();
            var profile = manager.GetUserProfiles()
                .OfType<SitefinityProfile>()
                .Where(p => p.FirstName == firstname)
                .FirstOrDefault();
            User user = null;
            if (profile != null)
            {
                user = profile.User;
            }

            return user;
        }
    }
}
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.