我总是在ASP.NET webapps中看到这些ID

时间:2014-09-22 12:11:54

标签: c# asp.net sql-server

我总是看到在URL中带有ID的ASP.NET应用程序,如下所示:

  

aa73de9c-41AC-11e4-a47a-d4ae52c74096

如何创建这些ID以及它们的用途是什么?

4 个答案:

答案 0 :(得分:2)

ID是 GUID 全球唯一标识符的字符串表示形式。 GUID是 128位值(或16个字节),字符串表示只是使用十六进制写入的值。添加破折号是因为GUID具有内部结构但不是那么重要。可能的GUID数量大约是340,000,000,000,000,000,000,000,000,000,000,000,000,000,这是一个相当大的数字。

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

several algorithms for generating GUID's。原始算法采用计算机网卡MAC地址(应该是唯一的)并将其与高分辨率时间戳组合以创建GUID。不幸的是,这会泄漏生成计算机的MAC地址,而今天您可能也不应该依赖MAC地址是唯一的。幸运的是,存在更好的生成GUID的算法。你甚至可以创建一个有趣的sequential GUID's,因为GUID非常擅长解决你不知道序列中下一个数字是什么的问题。

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

答案 1 :(得分:1)

您正在查看的网络应用可能正在使用cookieless sessions。在这种情况下,您可以将Guid嵌入到URL中,该URL将在没有设置cookie的情况下跟踪会话。

此无webless会话由此web.config密钥

激活
<sessionState cookieless="true" />

因此,如果您有权访问应用代码,则可以查看是否存在问题

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

它是一个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