ASP.NET MVC check if user belongs to [x] group

13,021

If you look at the Authentication provider which comes out-of-the-box in the default MVC project templates it's easy to add your own role support there and track it in session, so your code above would become:

if(Request.IsAuthenticated)
{
  if(Session["Role"] == "Administrator")
    return View("IndexAdministrator");
  else
    return View("IndexCustomer");
}
else
  return View("IndexGuest");

and then opens possibilities like:

if(Request.IsAuthenticated)
  return View("Index" + Session["Role"]);
else
  return View("IndexGuest");
Share:
13,021
nathanchere
Author by

nathanchere

I think, therefore I branch.

Updated on June 24, 2022

Comments

  • nathanchere
    nathanchere almost 2 years

    Maybe I'm approaching this the wrong way and should be doing everything in action filters, in which case please point me in the right direction!

    I'm setting up my ASP.NET MVC application so that the one HomeController Index action delivers two different types of content, like so:

    if(Request.IsAuthenticated)
      return View("IndexRegistered");
    else
      return View("IndexGuest");
    

    This is fine but say I want to split it into three so Administrator members get their own page...

    if(Request.IsAuthenticated)
    {
      if( /* user is a member of administrators */)
        return View("IndexAdministrator");
      else
        return View("IndexCustomer");
    }
    else
      return View("IndexGuest");
    

    Can someone enlighten me as to the missing piece of this puzzle?