C# - Uniquely Identify Two Instances Of One Browser That Share Session State?
Mar 14, 2010
I want to ensure a user isn't editing the same form data in two different browser tabs or windows (of the same web browser instance). The intention is to stop the user from accidentally overwriting their own data as they continue through a very long form process. On the server, ongoing data input through the screens is collected into the Session.
Assume for any browser, all tabs and windows run in the same instance of it (i.e. not each in a separate process). Obviously the browser tabs and windows share the same cookies in this scenario so cookie modification seems out of the question for viable solutions. This is also the reason they are sharing the same session state.
Considering that the form is already created and this is one of the final touches, how can I use ASP.NET, hopefully easily, to oversee this "feature"?
I want to use a global data for MVC web application running on Windows Azure (e.g. something like a list of users having new messages).
For a normal webapp, I could use some per-appdomain storage like AppDomain.SetData or just static variable. What should I use for Azure instead (cache? blob storage? queues?) and what solution would be the fastest one?
I have an ASP.Net app with a lot of pages in it.My problem is to uniquely identify every page in my app. now the app might have pages with just the page name eg: home.aspx and can have pages with query strings eg:testPage.aspx?q1=1&q2=2.what i have been thinking is since every URL in my app is unique I could use the page name + all query string params concatenated(key and value) to identify the page uniquely.eg:home.asp home testPage.aspx?q1=1&q2=2 -> testpageq11q22.Is this the correct way to go or is there a better way to do it.The reason I want to do this is I need to add at run time some meta data information from a database for each of the pages.The PageID then becomes my unique ID which I can then map all my meta data info in the db to.
[code]...
would potentially point to the same page (where the optional param gives me some kind of meta information thats is not being used to generate the content on the page)
I have a server application that runs in a hosted environment but creates print jobs in the client's local network (behind NAT; the mechanics of this is not relevant).
In order to send the print job to the printer that is attached to the workstation, I need to identify the workstation. The users move around between workstations, so I can't permanently associate a user with a workstation/printer. The trivial solution is to require the user to identify the machine he is logging in from, for instance by selecting from a list, but that's an inconvenience and subject to user error.
Options I have eliminated:
Host header variables (nothing identifiable is sent) Cookies, in support of a user selection. This somewhat addresses the potential for user error, but not really. HTML5 DOM Storage - is not supported by the client's browser
Edit: I do have the option of puttnig this particular function (create a print job) into a thick client app. The app can then of course be configured and the problem goes away. But the user experience will suffer from having to switch between the browser and a Windows app.
As working with ip address in Sql Server needs some Efforts than mysql b'cos it Doesn't has INET_ATON() functionality. even though we create a Function to do that. But as per Requirement if ip address and postid should be Unique with One Post Question. than its some more complex to implement. so i need a solution without compromising my Disk space, 4 Tiny int field for ip address can be used but comparison will be more Hard to achieve. b'cos it is a composite primary key.
In my website I am maintaining log of users in which I am storing some user's information such as user machine IP umber,SessionId,UserName etc.and able to show the list of current and past users in webpage. I want to share and connect to browser session of any of the current users. Is it possible,if yes then how?
I have two WCF services configured with ASP.NET compatible mode to allow them to use ASP.NET session state. The problem is as follows:
1.- A call to the first service stores a value in the ASP.NET session state. 2.- A second call to the first service can read that value.
3.- A call to the second service can't read the ASP.NET session state value.
It seems that the ASP.NET session state is not shared between the two WCF services. Is there a way to share ASP.NET Session state between two WCF Services?
We are migrating an ASP Classic website over to ASP.Net. One of the big hurdles is the large amount of data stored in SessionState by the ASP Classic website.
I am looking for ways that session state can be shared between the two applications. I found the following link from microsoft MSDN that describes how to share session with a shared database. Unfortunately it uses the binary formatter to serialize into the database and I have recently had some bad experiences with said binary serialization.
how to share session state? or alternatives to the binary serialization?
I am using cookieless session manangement in ASP.NET 1.1. When the session is active and the user uses the same url in a new browser window or a new browser in different machine. since the session is active the url will validate itself. When user open new window with same session, i want show some custom meesage.
I have two exactly the same web sites hosted in two different machines under IIS 7.5. ASP.NET state service is running on my machine and the web.config is updated in both sites with the following code:
The allow remote connection is set to 1 in registry in order for the second web site to access the state server.Both web sites have the same machine key:
Additionally both sites are configured in IIS to have the same Identifier.What I want to do is that both these sites share the same session data for example being able to do the following:
// At web site 1: Session["key"] = "value"[code]....
The problem is that I can't manage to accomplish this test and really can't understand what I am doing wrong.
I have a bunch of EC2 servers that are load balanced. Some of the servers are not sharing session, and users keep getting logged in and out. How can I make all the server share the one session, possibly even using a partitionresolver solution
public class PartitionResolver : System.Web.IPartitionResolver { private String[] partitions; public void Initialize() { // create the partition connection string table // web1, web2 partitions = new String[] { "192.168.1.1" }; }
public String ResolvePartition(Object key) { String oHost = System.Web.HttpContext.Current.Request.Url.Host.ToLower().Trim(); if (oHost.StartsWith("10.0.0") || oHost.Equals("localhost")) return "tcpip=127.0.0.1:42424"; String sid = (String)key; // hash the incoming session ID into // one of the available partitions Int32 partitionID = Math.Abs(sid.GetHashCode()) % partitions.Length; return ("tcpip=" + partitions[partitionID] + ":42424"); } }
I have 2 different Virtual Directories on my local IIS 7.0 server. I want to do session Management in such a way that Session variable created in one Virtual Directory is easily available in another Virtual Directory. I want to achieve this using SQL Server 2005. Till now I have done the following things
1) In my web.config file I have added the following entry
I'm having trouble getting 2 identical ASP.NET MVC applications to share the same Session using a Session StateServer. The reason I'm trying to do this is we will eventually be deploying this app across 3 web servers that need to share the same state. We need to use StateServer because we are trying to minimise use of the db for non data-related storage.
The Setup: I've deployed the same code base to http://localhost/App1 and http://localhost/App2
both have identical Web.Config files with the following:
The Result:For both deployments, when the page first loads I can see that the mode is StateServer and the timestamp is getting set to the same time as the realtime value.. However, if this was working, only the first page should have the same time as the realtime value. The second page load should read from the StateServer because that timestamp value is no longer null, and display that time value. But instead, it's displaying the realtime value again.
When I refresh the page, I the timestamp stays the same and the realtime value is always updating. This indicates that the timestamp is being saved to the Session, but the time stamp value is always different for both deployments when it should be the same, so this indicates that the Session is not being shared.
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.
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 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