Query users

This topic contains examples of how to:

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

Querying 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, read For developers: 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;
        }
    }
}

Querying 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 For developers: 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;
        }
    }
}

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