Troubleshooting ...
To view the error, I would make sure that you show the current user HttpContext.Current.User.Identity.Name; on every page. Refresh the page and verify that the user has not changed. Go to other pages and do the same. Clear all cookies and the state of the application in the browser, close the browser, then reopen the browser and return to the site. You still need to log in as the same user on every page and in every browser session. If this is intermittent, you may need to repeat this several times to reproduce the error.
Does this happen when running local IIS Express on developer machines? Does this ever happen in other environments (test, staging) where the code is used? If not, how is production different?
Is there a proxy between users and the production web server? Or even some of the users, for example, if they log in via VPN?
source share