It sounds like you are relatively happy with the authentication process, but you want to explore other session / settings options.
My suggestion is only related to settings (roles, preferences, etc.)
In my opinion, sometimes moving the entire technology stack from the user interface to the business level to the DB level in DB is a bit overkill. For data that is unlikely to change during the session, this will add a lot of overhead ... There are potentially several data transformations (DB (Relational Format) β ORM β Web Services XML Serialization β Web-Level Deserialization).
You might consider a session system that does not rely on the heavy RDBMS system or on the ASP.NET caching / session model. There are options that are very effective and scale well.
You can use RavenDB from Ayende Rahien (Built for.NET). Its main goal is to provide low latent and high-performance access to JSON documents without a schema.
Using this solution, you must configure ravenDB at the web level so that data access is very fast. The first time you authenticate and retrieve the settings, you must save the user ID and settings information in this session. Each time you load the controller after this, the configuration data is available without the need to return to the RDBMS. This database can also be used to cache other Internet-related data.
In terms of security , configuration data is passed to the web tier regardless of the method you use. This solution will not be more or less secure than other options (more secure than unencrypted cookies). If you need to, you can encrypt session data, but this will increase your overhead again.
Another one of millions of options.
Luck,
Let us know what you decide!
Patrick.
Patrick
source share