How to get the current logged in Umbraco user and restrict front end content

Posted written by Paul Seal on December 15, 2016 Umbraco

What is this?

This post shows you how to get the current logged in Umbraco user and restrict content on the front end of the site.

Ok, show me how

In Umbraco v8

@inherits UmbracoViewPage

@using Umbraco.Core.Composing
@using Umbraco.Web.Security
@using Umbraco.Core.Models.Membership

@{
    Layout = null;

    bool isLoggedInUser = false;
    IUser currentUser = null;

    var userTicket = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current).GetUmbracoAuthTicket();

    if (userTicket != null)
    {
        isLoggedInUser = true;
        currentUser = Current.Services.UserService.GetByUsername(userTicket.Identity.Name);
    }
}

@if (isLoggedInUser)
{
    <p>Logged in as @currentUser.Name</p>
}
else
{
    <p>You must be logged in to umbraco to view this page</p>
}

In Umbraco v7

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage

@using Umbraco.Core
@using Umbraco.Core.Security
@using Umbraco.Core.Models.Membership

@{
    Layout = null;

    bool isLoggedInUser = false;
    IUser currentUser = null;

    var userTicket = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current).GetUmbracoAuthTicket();

    if (userTicket != null)
    {
        isLoggedInUser = true;
        currentUser = ApplicationContext.Services.UserService.GetByUsername(userTicket.Name);
    }
}

@if (isLoggedInUser)
{
    <p>Logged in as @currentUser.Name</p>
}
else
{
    <p>You must be logged in to umbraco to view this page</p>
}

Basically, if it can get the user authentication ticket, it considers you logged in.

Then it just sets the bool value to say you are logged in and gets the user, using the user service, so you can access the properties of the user, if you want.

If you found this useful, please share it with others and bookmark it for later use.