• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2109
  • Last Modified:

Roles.IsUserInRole Multiple Roles?

I'm currently using this for multiple Roles page login:

if (User.IsInRole("Administrators") | User.IsInRole("managers"))

I would like to use a shorter code like so, but not sure if its possible.

if (Roles.IsUserInRole("Administrators, managers"))
--or--
if (Roles.IsUserInRole("Administrators", "managers"))

I like using as little code as possible, when possible...

Thanks before hand..


0
pointeman
Asked:
pointeman
1 Solution
 
tetorvikCommented:
I believe you can compare only a single role at the time. If you need to do that comparision in multiple places, you may consider creating a helper method to shorten your code.
Something like:
public static bool IsUserInRoles(List<string> roles)
{
     return roles.Exists(role => Roles.IsUserInRole(role).Equals(true));
}
 
Or alternatively
 
public static bool IsUserInRoles(string roles)
{
     string[] arrRoles = roles.Split(',');
         foreach (string role in arrRoles)
              if (Roles.IsUserInRole(role))
                    return true;
         return false;
}
 
And use them like:
if (IsUserInRoles(new List<string>() { "Admin", "Manager", "User" }))
{ }
else if (IsUserInRoles("Admin,Manager,User"))
{ }

Open in new window

0

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now