基础知识
GUID代表全球唯一识别符。正如名字所表示的,这些数字从统计上来说是唯一的,这就意味着在全世界不会有两个GUID完全相同。这是为什么呢?
一个 GUID是一个128位的数字,通常用一个32位的十六进制字符串来表示,就象这样:3e4dab67-ac0b-47cc-b1cf-40f93324350f
两个GUID相等的几率是 1/2128 ,几乎为0。
由于它们的唯一性,GUID可以被用在需要唯一关键字的应用程序中,但是这种情况下的关键字是不能组合起来生成一个关键字。
举例来说,你想跟踪站点的访问者。如果不向访问者询问一些问题,就不可能生成含有他们行动信息的表格关键字。只有当你拥有了他们的识别信息,如电话号码等,才能做到。在没有这些信息的情况下,你可以使用一个唯一数字,如计数器,作为关键字。要想使这个 ID不可复制,就可以使用GUID。 用计数器的话,会有数字被复制的可能,比如复位了计数器,但是使用GUID,就没有这种可能。
在ASP.NET创建GUID
在ASP时代,要生成GUID必须要依靠一个外部COM 组件或SQL Server。现在,.NET框架中提供了创建GUID必要的类,使生成GUID变得容易。System名称空间中包含了声称GUID的GUID类,这个类包含 NewGUID()方法,当它被调用时,就返回一个带有新值的GUID对象。现在,就让我们来看看生成一个新GUID的简单例子:
<html>
<body>
<%=System.GUID.NewGUID()%>
</body>
</html>
点击这里演示。
刷新演示页面,你就会发现每次都会显示一个新的GUID。
以下是对上面代码进行了"修饰"的版本,点击"Create GUID"按钮就会触发创建一个新的GUID:
<html>
<script language="vb" runat="server">
'' 当点击"Create GUID"按钮时,调用下面的防范
Sub displayNewGUID (Sender As Object, E As EventArgs)
'' 设置label内容为新GUID数值
guidLabel.Text = System.GUID.NewGuid().ToString()
End Sub
</script>
<head>
<title>Demo: Generating GUIDs</title>
</head>
<body>
<form runat="server">
<asp:Button id="guidButton" text="Create GUID" runat="server" onclick="displayNewGUID" />
<br>
<asp:Label id="guidLabel" runat="server" />
</form>
</body>
</html>
点击这里演示。
由于上述方法使用了.NET的基本类之一,因此它可以被任何.NET应用程序使用,而不仅仅局限于ASP.NET中。