Создание идентификаторов GUID с помощью активных серверных страниц в IIS

В этой статье содержатся сведения о том, как создать несколько примеров страниц с помощью различных форм GUID для страниц Active Server (ASP). Эти значения можно использовать для создания уникальных записей данных в базе данных или в любом другом месте, где требуется уникальное поле данных.

Оригинальная версия продукта: службы IIS
Исходный номер базы знаний: 320375

Примечание.

Поскольку в этих примерах не используются переменные сеанса, эти примеры также работают на веб-серверах с отключенным состоянием сеанса.

Создание простого идентификатора GUID на основе времени

В этом примере создается простой идентификатор GUID на основе времени из 14 символов с использованием текущего года, месяца, дня, часа, минуты и секунд. Это позволяет сортировать данные на основе GUID.

  1. Нажмите кнопку Пуск, наведите указатель мыши на пункт Программы, выберите Стандартные, а затем выберите Блокнот , чтобы открыть Блокнот.

  2. Введите или вставьте следующий код ASP в Блокнот:

    <%@LANGUAGE="VBSCRIPT"%>
    <HTML>
        <BODY>
            <%
                Response.Write "GUID = " & CreateGUID()
    
                Function CreateGUID()
                    Dim tmpTemp
                    tmpTemp = Right(String(4,48) & Year(Now()),4)
                    tmpTemp = tmpTemp & Right(String(4,48) & Month(Now()),2)
                    tmpTemp = tmpTemp & Right(String(4,48) & Day(Now()),2)
                    tmpTemp = tmpTemp & Right(String(4,48) & Hour(Now()),2)
                    tmpTemp = tmpTemp & Right(String(4,48) & Minute(Now()),2)
                    tmpTemp = tmpTemp & Right(String(4,48) & Second(Now()),2)
                    CreateGUID = tmpTemp
                End Function
            %>
        </BODY>
    </HTML>
    
  3. Сохраните страницу:

    1. В меню Файл нажмите Сохранить.
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Присвойте файлу имя GuidTest0.asp.
    4. Нажмите кнопку Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с интернет-Обозреватель. Вы увидите GUID. При обновлении страницы отображается приращение GUID.

Создание простого GUID смещения по времени

В этом примере создается идентификатор GUID на основе времени из 20 символов, используя смещение в секундах с полуночи 1 января 2000 года в 12:00. Это позволяет сортировать данные на основе GUID и может быть обновлено для использования любой другой даты в качестве базовой.

  1. Нажмите кнопку Пуск, наведите указатель мыши на пункт Программы, выберите Стандартные, а затем выберите Блокнот , чтобы открыть Блокнот.

  2. Введите или вставьте следующий код ASP в Блокнот:

    <%@LANGUAGE="VBSCRIPT"%>
    <HTML>
        <BODY>
            <%
                Response.Write "GUID = " & CreateGUID()
    
                Function CreateGUID()
                    Dim tmpTemp1,tmpTemp2
                    tmpTemp1 = Right(String(15,48) & CStr(CLng(DateDiff("s","1/1/2000",Date()))), 15)
                    tmpTemp2 = Right(String(5,48) & CStr(CLng(DateDiff("s","12:00:00 AM",Time()))), 5)
                    CreateGUID = tmpTemp1 & tmpTemp2
                End Function
            %>
        </BODY>
    </HTML>
    
  3. Сохраните страницу:

    1. В меню Файл нажмите Сохранить.
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Присвойте файлу имя GuidTest1.asp.
    4. Нажмите кнопку Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с интернет-Обозреватель. Вы увидите GUID. При обновлении страницы отображается приращение GUID.

Примечание.

В этом примере уникальность допускается только в том случае, если функция не вызывается два раза за одну секунду. Любые два вызова функции в одну и ту же секунду вызывают конфликт. Это не может вызвать проблему в зависимости от того, как код использует функцию, но вы можете использовать пример создания более уникального GUID смещения времени , чтобы разрешить уникальные значения, которые происходят в той же секунде.

Создание более уникального GUID смещения времени

В этом примере, как в примере создания простого GUID смещения по времени , создается идентификатор GUID на основе времени, но он содержит 25 символов. В этом примере создается 20-значное значение из смещения в секундах с 12:00 1 января 2000 г. и добавляется еще пять случайных чисел к концу этого значения. Это позволяет сортировать данные на основе GUID, но обеспечивает гораздо большую уникальность. Его можно обновить, чтобы использовать любую другую дату в качестве основы.

  1. Нажмите кнопку Пуск, наведите указатель мыши на пункт Программы, выберите Стандартные, а затем выберите Блокнот , чтобы открыть Блокнот.

  2. Введите или вставьте следующий код ASP в Блокнот:

    <%@LANGUAGE="VBSCRIPT"%>
    <HTML>
        <BODY>
            <%
                Response.Write "GUID = " & CreateGUID()
    
                Function CreateGUID()
                    Randomize Timer
                    Dim tmpTemp1,tmpTemp2,tmpTemp3
                    tmpTemp1 = Right(String(15,48) & CStr(CLng(DateDiff("s","1/1/2000",Date()))), 15)
                    tmpTemp2 = Right(String(5,48) & CStr(CLng(DateDiff("s","12:00:00 AM",Time()))), 5)
                    tmpTemp3 = Right(String(5,48) & CStr(Int(Rnd(1) * 100000)),5)
                    CreateGUID = tmpTemp1 & tmpTemp2 & tmpTemp3
                End Function
            %>
        </BODY>
    </HTML>
    
  3. Сохраните страницу:

    1. В меню Файл нажмите Сохранить.
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest2.asp.
    4. Нажмите кнопку Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с интернет-Обозреватель. Вы увидите GUID. При обновлении страницы отображаются первые 20 символов приращения GUID, а последние пять символов являются случайными.

Примечание.

Этот пример и пример простого GUID смещения по времени создаются для сериализации вызовов CreateGUID функции на основе времени. Если сортировка данных по времени не является обязательным требованием, можно использовать пример создания простого случайного GUID для создания случайного GUID.

Создание простого случайного GUID

  1. Нажмите кнопку Пуск, наведите указатель мыши на пункт Программы, выберите Стандартные, а затем выберите Блокнот , чтобы открыть Блокнот.

  2. Введите или вставьте следующий код ASP в Блокнот:

    <%@LANGUAGE="VBSCRIPT"%>
    <HTML>
        <BODY>
            <%
                Response.Write "GUID = " & CreateGUID()
    
                Function CreateGUID()
                    Randomize Timer
                    Dim tmpCounter,tmpGUID
                    Const strValid = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                    For tmpCounter = 1 To 20
                    tmpGUID = tmpGUID & Mid(strValid, Int(Rnd(1) * Len(strValid)) + 1, 1)
                    Next
                    CreateGUID = tmpGUID
                End Function
            %>
        </BODY>
    </HTML>
    
  3. Сохраните страницу:

    1. В меню Файл нажмите Сохранить.
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest3.asp.
    4. Нажмите кнопку Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с интернет-Обозреватель. Вы увидите случайный GUID из 20 символов. При обновлении страницы значение изменяется случайным образом.

Примечание.

В этом примере создается случайный GUID фиксированной длины. Чтобы создать GUID переменной длины, используйте пример создания случайного GUID переменной длины .

Создание случайного GUID переменной длины

  1. Нажмите кнопку Пуск, наведите указатель мыши на пункт Программы, выберите Стандартные, а затем выберите Блокнот , чтобы открыть Блокнот.

  2. Введите или вставьте следующий код ASP в Блокнот:

    <%@LANGUAGE="VBSCRIPT"%>
    <HTML>
        <BODY>
            <%
                Response.Write "<P>GUID = " & CreateGUID(10)
                Response.Write "<P>GUID = " & CreateGUID(25)
                Response.Write "<P>GUID = " & CreateGUID(50)
    
                Function CreateGUID(tmpLength)
                    Randomize Timer
                    Dim tmpCounter,tmpGUID
                    Const strValid = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                    For tmpCounter = 1 To tmpLength
                    tmpGUID = tmpGUID & Mid(strValid, Int(Rnd(1) * Len(strValid)) + 1, 1)
                    Next
                    CreateGUID = tmpGUID
                End Function
            %>
    </BODY>
    </HTML>
    
  3. Сохраните страницу:

    1. В меню Файл нажмите Сохранить.
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Присвойте файлу имя GuidTest4.asp.
    4. Нажмите кнопку Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с интернет-Обозреватель. Вы увидите случайный GUID из 10, 25 и 50 символов. При обновлении страницы значения меняются случайным образом.

Примечание.

В этом примере и в примере создания простого случайного GUID создаются строки объединенных случайных символов. Пример создания случайного GUID в стиле windows расширяет эту функцию, чтобы создать GUID, отформатированный как GUID Windows.

Создание случайного GUID в стиле Windows

Windows в основном использует идентификаторы GUID, когда регистрирует идентификаторы классов для компонентов и других объектов, но идентификаторы GUID можно использовать для чего угодно. Идентификаторы GUID Windows — это длинные строки форматированных шестнадцатеричных символов. Это означает, что в них используются цифры от 0 до 9 и буквы от A до F .(Microsoft Access также имеет встроенный идентификатор репликации в том же формате).) В этом примере показано, как использовать код, аналогичный примеру кода создания случайного GUID переменной длины , для создания guid, аналогичного идентификатору GUID Windows.

  1. Нажмите кнопку Пуск, наведите указатель мыши на пункт Программы, выберите Стандартные, а затем выберите Блокнот , чтобы открыть Блокнот.

  2. Введите или вставьте следующий код ASP в Блокнот:

    <%@LANGUAGE="VBSCRIPT"%>
    <HTML>
        <BODY>
            <%
                Response.Write "<P>GUID = " & CreateWindowsGUID()
    
                Function CreateWindowsGUID()
                    CreateWindowsGUID = CreateGUID(8) & "-" & _
                    CreateGUID(4) & "-" & _
                    CreateGUID(4) & "-" & _
                    CreateGUID(4) & "-" & _
                    CreateGUID(12)
                End Function
    
                Function CreateGUID(tmpLength)
                    Randomize Timer
                    Dim tmpCounter,tmpGUID
                    Const strValid = "0123456789ABCDEF"
                    For tmpCounter = 1 To tmpLength
                    tmpGUID = tmpGUID & Mid(strValid, Int(Rnd(1) * Len(strValid)) + 1, 1)
                    Next
                    CreateGUID = tmpGUID
                End Function
            %>
        </BODY>
    </HTML>
    
  3. Сохраните страницу:

    1. В меню Файл нажмите Сохранить.
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Присвойте файлу имя GuidTest5.asp.
    4. Нажмите кнопку Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с интернет-Обозреватель. Вы увидите случайный GUID, отформатированный как GUID Windows. При обновлении страницы значение изменяется случайным образом.

Создание более надежного случайного GUID в стиле Windows

Так как идентификаторы GUID Windows используют шестнадцатеричные числа для каждого символа, в GUID можно использовать 16 значений. Если развернуть значения, включив в него весь алфавит, в GUID можно использовать 36 значений. В этом примере используется функция из примера создания случайного GUID переменной длины для создания GUID в том же формате, что и GUID Windows.

  1. Нажмите кнопку Пуск, наведите указатель мыши на пункт Программы, выберите Стандартные, а затем выберите Блокнот , чтобы открыть Блокнот.

  2. Введите или вставьте следующий код ASP в Блокнот:

    <%@LANGUAGE="VBSCRIPT"%>
    <HTML>
        <BODY>
            <%
                Response.Write "<P>GUID = " & CreateWindowsGUID()
    
                Function CreateWindowsGUID()
                    CreateWindowsGUID = CreateGUID(8) & "-" & _
                    CreateGUID(4) & "-" & _
                    CreateGUID(4) & "-" & _
                    CreateGUID(4) & "-" & _
                    CreateGUID(12)
                End Function
    
                Function CreateGUID(tmpLength)
                    Randomize Timer
                    Dim tmpCounter,tmpGUID
                    Const strValid = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                    For tmpCounter = 1 To tmpLength
                    tmpGUID = tmpGUID & Mid(strValid, Int(Rnd(1) * Len(strValid)) + 1, 1)
                    Next
                    CreateGUID = tmpGUID
                End Function
            %>
        </BODY>
    </HTML>
    
  3. Сохраните страницу:

    1. В меню Файл нажмите Сохранить.
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest6.asp.
    4. Нажмите кнопку Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с интернет-Обозреватель. Вы увидите случайный GUID, отформатированный как GUID Windows. При обновлении страницы значение изменяется случайным образом.