State Management :: How To Get Unique Session Id That Generated Same For All Browser Tabs
May 19, 2010
How to get unique session id that generated same for all browser tabs and different and always unique when we close and open new browser in asp.net code.
I have some code in my page load event where I just want to fire once when the user opens the Browser. The only issue is if you open a new tab with the same website the session variable does not reset. Is there a way to reset the session variable when you open a new tab or do you have to take the whole web browser down for it to clear the session variable.
We have a common problem with tabbed browsing in Internet Explorer is that the session state is shared between the tabs.
Due to this our user can face many issues like
1) Suppose user has opened a .aspx page for (clientId=1) and editing it in one tab and at the same time user is editing another client(ClientID=2). And both are using same in session.
Due to the session sharing when page will auto refresh the first tab with (clientId=1) will see the data of clientId=2.
Its clear that the session is shared between the tabs.
I have also implemented the ASP.NET 2.0 offered solution by way of the following config setting <sessionState mode="InProc" cookieless="UseUri"></sessionState>
But still our users are facing this issue. I am looking for solution to disabled the Tab programaticaly and also i wanted to know how to clear the cache programatically.
Right now I am creating this session with the session key "PhonePart" which is also the name of object I am passing in as a parameter in first method. In subsequent methods, I use the the same name to retreive and clear session value. My problem is, this approach works fine If I instantiate a single object of the class where these methods are defined and using that object call the methods, but when I create another instance of the same class and calls for instance method AddToSession and pass that instance, it overwrites the session value stored by the first instance of the class as the session key is the same that is "PhonePart".
Considering this scenario, is it possible that I somehow grab the name of the object as string in the calling method say "AddToSession" and create a session with that name? If Yes, then I can do the same in subsequent methods and retreive session value and also clear the session specific to that instance name without affecting the other session values stored by other instances.
We use windows authentication. User opens our website in tab1 and does some action but with out clicking on save he opens a new tab tab2 and opens the same website again. Now, if the user session in tab1 is active i need to warn users that the he is already logged on to application in some other browser and go to some log out page. But if the user session in tab1 is timed out then he must be able to continue with the website in tab2 as usual, but if he tries to do anything in tab1 he should go to session expired page. I tried implementing it in following way.
I have a hidden field in each page which will be set to unique Id using GUID.NewID(). when user requests for a page the following code is executed.
I'm not sure if this is an error or is the right work mode for sql sessions.
I'm working now with Windows 2008 R2 Web Ed. and SQL Server 2008 Web Ed.
When I close my browse and open again a new browser window I need to login again in asp.net application and a new session is created in the sessions table in sql server.
It's this normal? I remember that with Windows 2003 and SQL 2005 this doesn't happend. When I closed my browser and open inmediately a new browser window my session was retained and I could continue working without relogin.
I have been spending a better part of a week trying to track down why I am not able to clear all session variables in a web app (vs 2010, vb.net). What I have tracked it down to is that when I remove or abandon sessions that my html pages or codebehind access, it works, but for some reason in any of my class files where I use "Public Shared strConnection as String = HttpContext.Current.Session("strConnection").ToString" to access a session variable, it finds the old one and not the current one. I have to wait for it to time out, go in again, and it will find the new one.
I do not use Linq, and there is only one place in the whole web app that I place the connection string in a variable whcih is when a person logs in. It points them to the correct database. The sqlconnection is set for all of my listviews in Page_Init to make sure that they aren't using any session variable that they create on their own. Interestingly enough that if I use debug to go in each time, exit debug, enter debug again trying to access a different database, it works correct each time. I assume that debug is correctly killing the session variable for the classes for me.
Physican is accessing data for patient #1 using ASP.NET Web site with backend SQL Server database. Session state is used to persist some patient information. At the same time, he checks his email and clicks a link in the email that launches the same Web site to check on a communication concerning patient #2. In IE8 these two instances of the application share the same session id. If physican responds to communication concerning patient #2 and returns to patient #1, he will now be accessing data for patient #2.
I know about framemerging etc. but how can I launch a new browser session from the hyperlink in the email without closing or stepping on the http session for patient #1 and without having to resort to cookieless sessions?
How to solve Cross browser session Problem???When i login to my site and open a new tab,the session is shared.I want a new session for each tab.It is possible without using cookieless = 'true',but i cant use this.
I am sorry if this is been discussed earlier. I am having a problem maintaining the session when someone uses the same browser with multiple tab, the results gets messed up. A perfect example would be, [URL] if you open IE (or any other browser) and open two tabs and search for two different air travel itinerary and the results will completely overlapped (real mess). I know the cause for this problem (both tabs uses the same session). I would appreciate if somebody have any solution for this. I am using ASP.NET 3.5/VS 2008/VB.NETI will not be able to use Viewstate since I use a master page and pre-init event where view state is not available.
While working with mutliple tabs of same browser, session varibles/object gets over written with latest one.
Scenario in my application:
I have to create new employee on first tab(tab #1), and updating existing employee details on second tab(tab #2).I stored employee other details in Session["dtInfo"], use it on saving the record.Now Session["dtInfo"] having details of latest tab created, i.e. tab #2. I tried to save record on tab #1, facing the problem of session gets over written.I had to check some vaules on OnInit and OnInitComplete event. But I get here wrong values in session.
I receive the error message "Error: Your session has expired. Please refresh your browser." When I export a table in ASP to Excel. I know for a fact that the correct data to export exists. Everything works fine except for this error message. I don't see how the session on a browser could run out in a matter of the one second it takes for the Excel file to pop up
Session variables are on server side. I need to clear out the server side session variables on browser close on client side. I have used a WebService and ajax call but still i am not getting the session cleared.
Is there a good way to keep the session after a user clicked reload/refresh? My boss wants this functionality, and I don't really/really don't want to use a query string...
Lets say I am doing a shoping cart. I authenticate the user with a session variable.For example:
If(Request.IsAuthenticated) // Here I want to add to the shoping cart. // Can I do the following Session["Cart"] = "Washing Machine"; Now will this Session["Cart"] value which is washing machine here be unique to diff customers?
i am trying to create a Unique order number so i tried to use the code above but every time i enter the quite the page the number get rest.
If (ViewState("counter") Is Nothing) Then ViewState("counter") = 1 Else ViewState("counter") = ViewState("counter") + 1 End If OrderNum.Text = ViewState("counter") If (ViewState("counter") Is Nothing) Then
I am using a FormView and on insert I want it to be redirected to another page and take the ID of the FormView which I have just inserted so I can have page b load with the date from page a that I have just inserted
I read the solutioin for this error, at the following link :http://forums.asp.net/p/1046935/1576341.aspxbut I am still not clear what exactly causes the error. I have two doubts :1. Can anyone please elaborate a bit on this issue, with any example ????2. Is there any drawback of this approach ?