Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ASP - ClientCertificate

ClientCertificate

Семейтво ClientCertificate извлекает поля сертификата (определенные стандартом X.509) из запроса, выданного веб-обозревателем.

Если веб-обозреватель использует протокол SSL3.0/PCT1 (другими словами, использует адрес URL, начинающийся с https://, а не с of http://) для подключения к серверу, а сервер запрашивает сертификацию, обозреватель передает поля сертификата.

Если сертификат не был передан, семейство ClientCertificate возвращает EMPTY(«пусто»).

Перед использованием семейства ClientCertificate необходимо настроить веб-сервер на запрос клиентских сертификатов.

Синтаксис

Request.ClientCertificate( Ключ[дополнительное_поле] )

 

Параметры

Ключ

Указывает имя извлекаемого поля сертификата. Сертификат клиента состоит из перечисленных ниже полей.

Значение Описание
Certificate Строка, содержащая последовательность двоичных данных всего содержимого сертификата в формате ASN.1.
Flags Набор флагов, обеспечивающих дополнительные сведения о клиентском сертификате. Могут быть установлены следующие флаги:

ceCertPresent—Клиентский сертификат присутствует.

ceUnrecognizedIssuer—Последняя сертификация в этой цепочке была проведена неизвестной службой.

Примечание.   Чтобы использовать предыдущие флаги, необходимо включить в ASP-страницу файл, вставляющий сертификат клиента. Если используется VBScript, включите файл cervbs.inc. Если используется JScript, включите файл cerjavas.inc. Эти файлы устанавливаются в каталоге \Inetpub\ASPSamp\Samples.

Issuer Строка, содержащая список значений дополнительных полей со сведениями о службе, выпустившей сертификат. Если это значение указано без дополнительного_поля, семейство ClientCertificate возвращает список дополнительных полей, разделенных запятыми. Например, C=US, O=Verisign, и так далее.
SerialNumber Строка, содержащая порядковый номер сертификата в виде символьного представления шестнадцатеричных цифр с байтами, разделенными дефисами (-). Например, 04-67-F3-02.
Subject Строка, содержащая список значений дополнительных полей. Значения дополнительных полей содержат сведения о клиенте. Если это значение указано без дополнительного_поля, семейство ClientCertificate возвращает список дополнительных полей, разделенных запятыми. Например, C=US, O=Msft, и так далее.
ValidFrom Дата вступления сертификата в силу. Эта дата записывается в формате VBScript и может изменяться в соответствии с национальными настройками. Например, для России, 26.09.1996 11:59:59. Значение года отображается четырьмя цифрами.
ValidUntil Дата истечения срока действия сертификата. Значение года отображается четырьмя цифрами.

Дополнительное_поле

Необязательный параметр, используемый для извлечения отдельных полей для ключей Subject и Issuer. Этот параметр добавляется к параметру Ключ в виде суффикса. Например, IssuerO или SubjectCN. В приведенной ниже таблицы перечислены некоторые общеупотребительные значения дополнительного_поля.

Значение Описание
C Указывает название страны.
CN Указывает общее имя пользователя. (Это дополнительное поле используется только с ключом Subject.)
GN Указывает присвоенное имя.
I Указывает набор инициалов.
L Указывает город.
O Указывает название компании или организации.
OU Указывает название подразделения.
S Указывает область или регион.
T Указывает должность.

Значения дополнительного_поля, отличные от перечисленных выше, могут быть распознаны по их идентификатору ASN.1. Формат идентификатора ASN.1 представляет собой список чисел, разделенных точками (.). Например, 3.56.7886.34.

Замечания

Можно перебирать ключи семейства ClientCertificate. Это показано в приведенном ниже примере.

<%

  For Each strKey in Request.ClientCertificate

    Response.Write strkey & " = " & Request.ClientCertificate(strkey) & "<BR>")

  Next

%>

 

Пример

Приведенный ниже пример использует ключ Subject для проверки наличия клиентского сертификата.

<%

  If Len(Request.ClientCertificate("Subject")) = 0

    Response.Write("No client certificate was presented")

  End if

%>

 

В приведенном ниже примере извлекается общее имя компании, выпустившей сертификат клиента.

<%= Request.ClientCertificate("IssuerCN") %>

 

В приведенном ниже примере проверяется название организации, получившей клиентский сертификат.

<%

  If (Request.ClientCertificate("Subject")="Msft")

    Response.Write("Good Choice!")

  End if

%>

 

В приведенном ниже примере отображается дата истечения срока действия клиентского сертификата.

This certification will expire on

<%= Request.ClientCertificate("ValidUntil") %>

 

В приведенном ниже примере используется ключ Flags для определения, известна ли служба, выдавшая сертификат. Директива include в первой строке позволяет сценарию использовать именованный флаг ceUnrecognizedIssuer.

<!--#include file="cervbs.inc" -->

<%

  If Request.ClientCertificate("Flags") and ceUnrecognizedIssuer then

    Response.Write "Unrecognized issuer"

  End If

%>

 

Область применения

Объект Request

См. также

Cookies, Form, QueryString, ServerVariables

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог