We are using Sitecore 8.1 to develop an Enterprise-level Website, this site receives around 1/2 million users.
We have a user dashboard and other details that the visitor can see after login, and they can browse protected pages and edit their details like any normal account.
Is it a good idea to keep user details in Session (InProc) and check a session value if they want to access protected pages or we can use Sitecore's Virtual User concept?
Which approach should we take in terms of scalability, security and performance?
InProc
session is not the way to go - you will need some kind of shared session state.