c# - 在服务器端获取唯一的 session ID/ key

标签 c# asp.net client-server clientid

我几乎可以肯定我正在寻找的东西存在,但我没有在 Microsoft 文档或此处找到。

我只想从服务器端的 ASP.NET 4.5 客户端获取唯一 ID(字符串或数字,我并不介意)。我希望这个 ID 链接到一个 session ,对于连接到我的服务器的每个系统来说都是不同的(比如多台计算机或具有不同浏览器的同一个客户端),但是如果用户在我的服务器上的同一个浏览器上打开多个选项卡,则相同。

我已经看过了:

  • System.Web.UI.Page.ClientID:它是控件的名称(因此始终为“__Page”)。
  • System.Web.UI.Page.UniqueID:它返回相同的值。
  • Session.LCID:我不确定它指的是什么,但如果我用不同的浏览器连接到我的服务器,它是一样的。
  • Session.SessionID:每次刷新页面或在新标签页中打开时更改。
  • Request.AnonymousID:为空。

所以我所有的尝试都给了我一个 ID,这个 ID 每次都会改变,或者永远不会改变。有没有办法从 session 中获取一些东西?

最佳答案

您要查找的实际上是 Session.SessionID,但需要注意。

来自 MSDN :

When using cookie-based session state, ASP.NET does not allocate storage for session data until the Session object is used. As a result, a new session ID is generated for each page request until the session object is accessed. If your application requires a static session ID for the entire session, you can either implement the Session_Start method in the application's Global.asax file and store data in the Session object to fix the session ID, or you can use code in another part of your application to explicitly store data in the Session object.

关于c# - 在服务器端获取唯一的 session ID/ key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392533/

相关文章:

c# - 不需要的字符出现

c# - 以最佳性能将数据插入 SQL Server

c# - 为车身参数生成描述字段

java - 我可以使用 Glassfish 从多个虚拟客户端访问本地主机吗?

java - jmx通信选择哪种方式

java - 如何访问远程对象的类变量

c# - 如何使用 Entity Framework 4 访问存储过程的 'Results'、 'Messages' 和 'Return Value'?

c# - 如何在 C# 中访问 DevExpress.XtraGrid.GridControl 的列

c# - 写入只读访问器 c#

asp.net - 基于 web.config 的 url 重写的绝对最小内容是什么?