我经常在ASP.NET Web应用程序中看到这些ID是什么

本文关键字:是什么 ID 应用程序 ASP Web NET | 更新日期: 2023-09-27 18:23:58

我总是看到ASP.NET应用程序的URL中的ID看起来像:

aa73de9c-41ac-11e4-a47a-d4ae52c74096

这些ID是如何创建的,它们的目的是什么?

我经常在ASP.NET Web应用程序中看到这些ID是什么

ID是GUID全局唯一标识符的字符串表示。GUID是一个128位值(或16字节),字符串表示形式就是使用十六进制编写的值。之所以添加破折号,是因为GUID有一个内部结构,但这并不那么重要。可能的GUID的大致数量是340000000000000000000000000000000000,这是一个相当大的数字。

GUID的重要之处在于,无论何时生成新的GUID(在.NET中使用Guid.NewGuid()),都可以依赖于它是唯一的。这意味着您可以在客户端上生成这些密钥,而无需首先向服务器请求下一个密钥(当您生成顺序密钥(如1、2、3等)时,您可以这样做

有几种生成GUID的算法。原始算法采用计算机网卡MAC地址(应该是唯一的),并将其与高分辨率时间戳相结合来创建GUID。不幸的是,这会泄露生成计算机的MAC地址,今天你可能也不应该依赖MAC地址的唯一性。幸运的是,有更好的生成GUID的算法。你甚至可以创建连续的GUID,这有点有趣,因为GUID非常善于解决你不知道序列中下一个数字是什么的问题

名称GUID实际上是Microsoft发明的,但它们实际上与UUID相同,后者是通用唯一标识符。我想微软在承诺在整个宇宙中的独特性方面犹豫不决,但至少承诺了全球的独特性。

您正在查看的web应用程序可能正在使用无烹饪会话。在这种情况下,您将在URL中嵌入Guid,该URL将在没有设置cookie的情况下跟踪会话。

无Cookie会话由这个web.config密钥激活

<sessionState cookieless="true" />

因此,如果您可以访问应用程序代码,您可以检查并查看这是否是问题

这些ID是GUID,在服务器端创建以保持唯一性。

您可以像这样创建这些IDhttp://msdn.microsoft.com/en-us/library/system.guid.newguid%28v=vs.110%29.aspx.

它是一个GUID(全局唯一标识符),您可以在C#中使用以下方法创建它们

Guid.NewGuid()

它们可以用于任何事情,所以在你提到的场景中很难说它们是用于什么,但无论它用于什么,都必须是唯一的,所以它可以是用户会话id、产品id、数据库记录id或网站可能需要跟踪的任何其他信息。

在这里查看更多信息(C#):

http://msdn.microsoft.com/en-us/library/system.guid.newguid(v=vs.110).aspx

它们不是C#独有的,可以在任何计算机系统中找到。由随机数生成的GUID通常包含6个固定比特(这些比特指示GUID是随机的)和122个随机比特;唯一的此类GUID的总数为2122(约5.3×1036)。这个数字太大了,同一数字随机生成两次的概率可以忽略不计

从维基百科获取更多关于Guids的信息。。

http://en.wikipedia.org/wiki/Globally_unique_identifier