Поделиться через


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

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

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

Примечание.

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

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

В этом примере создается простой 14-символьный GUID на основе времени с помощью текущего года, месяца, дня, часа, минуты и секунд. Это позволяет сортировать данные на основе 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. В меню File (Файл) выберите пункт Save (Сохранить).
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest0.asp.
    4. Выберите Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с помощью Internet Explorer. Вы видите GUID. При обновлении страницы вы увидите добавочный идентификатор GUID.

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

В этом примере создается 20-символьный GUID на основе времени с помощью смещения в секундах с 12:00 полуночи 1 января 2000 года. Это позволяет сортировать данные на основе 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. В меню File (Файл) выберите пункт Save (Сохранить).
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest1.asp.
    4. Выберите Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с помощью Internet Explorer. Вы видите GUID. При обновлении страницы вы увидите добавочный идентификатор 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. В меню File (Файл) выберите пункт Save (Сохранить).
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest2.asp.
    4. Выберите Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с помощью Internet Explorer. Вы видите 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. В меню File (Файл) выберите пункт Save (Сохранить).
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest3.asp.
    4. Выберите Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с помощью Internet Explorer. Отображается 20-символьный случайный GUID. При обновлении страницы вы увидите, что значение изменяется случайным образом.

Примечание.

В этом примере создается случайный 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. В меню File (Файл) выберите пункт Save (Сохранить).
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest4.asp.
    4. Выберите Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с помощью Internet Explorer. Отображается 10-символьный, 25-символьный и 50-символьный случайный GUID. При обновлении страницы значения изменяются случайным образом.

Примечание.

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

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

Windows в основном использует идентификаторы 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. В меню File (Файл) выберите пункт Save (Сохранить).
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest5.asp.
    4. Выберите Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с помощью Internet Explorer. Вы увидите случайный GUID, отформатированный как GUID Windows. При обновлении страницы вы увидите, что значение изменяется случайным образом.

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

Так как идентификаторы GUID Windows используют шестнадцатеричные числа для каждого символа, 16 значений можно использовать для каждого символа в GUID. Если развернуть значения для включения всего алфавита, 36 значений можно использовать для каждого символа в GUID. В этом примере используется функция из примера случайного 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. В меню File (Файл) выберите пункт Save (Сохранить).
    2. Найдите корневую папку веб-сайта, которая обычно является папкой C:\InetPub\Wwwroot для веб-сайта по умолчанию.
    3. Назовите файл GuidTest6.asp.
    4. Выберите Сохранить.
    5. В меню Файл выберите Выход.
  4. Найдите страницу с помощью Internet Explorer. Вы увидите случайный GUID, отформатированный как GUID Windows. При обновлении страницы вы увидите, что значение изменяется случайным образом.