Now, the private site needs to be viewable by registered/logged in users only. This can be accomplished in the admin area by simply navigating to: Configuration -> Global Settings -> Other -> Allow navigation only for registered customers. Check this box and users will not be allowed to surf the site without first registering and/or logging in. However, this is a database setting, and would apply to all sites targeting this database. This will not work for my needs.
Luckily, there is a very simple solution. On my private site, we'll add 2 lines of code to the Root.Master.cs page in the OnLoad event:
protected override void OnLoad(EventArgs e)
//Check to see if the customer is logged in, if not redirect to the login/register page
if (NopContext.Current.User == null)
And Viola! The masterpage will now check if the NopContext.Current.User object is null, and it will be if you're not logged in, and if so then redirect to a login page. We'll apply a new nested masterpage here to remove any navigation elements other than login and register.