我总是看到在URL中带有ID的ASP.NET应用程序,如下所示:
aa73de9c-41AC-11e4-a47a-d4ae52c74096
如何创建这些ID以及它们的用途是什么?
答案 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