With all of that said, you may not actually want distinct "sessions" at all. The best solution may still just be a single session. If your user is logged in using the same credentials and permissions on each tab, and you need to track data related to a particular window, tab, or view on both the client and server, you probably just want something thata collection wouldn't correctly be called ain the session. to group those data collections. But in most casesthat type of solution, view/tab identifiers aren't usually necessary because the view only asks for the informationthings relevant to itself.
Cross-talk between tabs and views is avoided by a combination of keeping things out of the "global" session that don't belong there and only asking for things you need.
But, if that's not feasible for some reason, you shouldcould consider adding a collection of view collection to your session model and passing a viewid around -- as a sub-collection in the session. In this case, you wouldn't have to worry about all the security concerns of session key management and protection (assuming you're properly using a strong session system). Because theThe view keys would only be relevant to the session, so a leaked viewid isn't relevant to anyone else, and therefore not a significant threat.