Advantage: If you have a variable that needs to be passed around to a lot of web pages, it may simplify things to use a Session variable, rather than passing the variable around through the QueryString. DisAdvantage: Session variables and cookies are synonymous. So if a user has set his browser not to accept any cookies, your Session variables won't work for that particular web surfer!
Advantages: 1. It stores user states and data to all over the application. 2. Easy mechanism to implement and we can store any kind of object. 3. Stores every user data separately. 4. Session is secure and transparent from user because session object is stored on the server. Disadvantages: 1. Performance overhead in case of large number of user, because of session data stored in server memory. 2. Overhead involved in serializing and De-Serializing session data because in case of StateServer and SQLServer session mode we need to serialize the object before store.