In my web project, I am using Static List. So say suppose I have 2 users (A, B) logged in to my website at the same time, then this List will store some information about A and as well as B. But say when I process B List’s records, A’s List’s are getting processed instead of B’s.
Can somebody point out the problem please?, also please suggest me some possible solution to avoid this problem.
I am using ASP.NET C# 3.5.
Thank you in advance 🙂
Edit:
Now I have changed the data type from Dictionary to List, but still the same problem…
A
staticvariable is one that is the same for all instances of a particular class. So this means your website uses the exact same dictionary for User A, B, C, D, etc. Essentially whichever user last writes to the dictionary is the one whose content you will see, regardless of which user is looking.As other’s have suggested, you can use
Sessionvariables. These are stored in the server’s memory, and are related to a specific browser ‘session’ (i.e. user).Personally, I prefer to use the
ViewStateas this is stored in the response to the browser, and returned to you whenever the page makes a postback. This means less memory usage on the server, the viewstate is not volatile across sessions (or subject to application resets like session). However this also means that whatever you are storing is sent across the wire, so you would never want to store things like credit card numbers, SSN’s, etc.It also means that if you’re storing a lot of very large objects, you’re going to have a very large response and postback (possibly slowing the cycle), so you have to be more careful about how and what you store.
So that’s a few different options for you, you should do the research and decide which is best for your requirements.