Is it best to check for a null User when trying to access UserID or should I assign an anonymous account? Or other?
You should check to see if there is no current user, and then create a new user account automatically and log them in, behind the scenes. If you use cookies (and assuming the user has them enabled), subsequent visits by this "anonymous user" will still map to the same account in your user repository, which is useful for tracking activity.
You can automatically put users into "registered" and "automatic/anonymous" groups. This makes it easy for your code to discern how to behave - for example, deciding whether to show "Log in" or "My Account" links by whether the current user is a member of the "anonymous" group. It also makes it easier to migrate over a history of activity to a registered account if/when the user decides to do so.
In ASP.NET membership you can call the following function to check whether or not a user is logged in / authenticated / anonymous or not...
User.Identity.IsAuthenticated()
If you are on a page, the User.Identity.IsAuthenticated()
property will give you a boolean value. If you are not on a page (ie, want to check in a class method), you need to import the System.Web.HttpContext
namespace.