Well, everyone knows that using sessions is NOT a scalable design, so what is the recommended design to preserve state on your site.
What I am looking for is a solid design which will handle most design situations.
Here are some basic requirements:
1. To provide scalability on a web farm, I want to avoid sessions.
2. Need to save the username who has logged in and there security level which is obtained from a login user table.
3. May want to save data entered on multiple forms for final updating when the process is completed (e.g. a shopping cart appl. where the order is built but not saved until the user has filled in the Payment screen successfully.
Assume there is too much data to save in hidden fields in the form (plus this is not very secure also).
4. Passing information from one page to another.
5. I want to disable sessions for the website, so I believe this will also prevent the use of cookies also.
6. Provide a timeout feature so that if the user does not respond for 10 minutes then cancel there session (delete the GUID key in the database).
7. Anticipated concurrent users is 500-3000.
Possible options I have seen.
A. Create a GUID for each new user that logs in and use that as a ID to save data in a database table.
Re-read the table on each page that reads and writes session related data.
NOT Sure, where we save the GUID between sessions but possibly as a HIDDEN FORM field or pass it around as a querystring variable (is there a better way?)
B. How to store various variables e.g. as an array ? maybe in the form of a dictionary object ?
C. Save the data in a file on the File server but I think this is less efficient than using a database table.
D. Use a COM component to perform saving the data in COM object but I believe this method will use a lot of memory.
E. Save the data on the client side and pass it back to the server (how to do this ? )
Ideally, the answer should work for Internet or Intranet.
Please give reasons for your recommendations.
Thanks for your efforts.