Ключи реестра проверки подлинности

При установке поставщика сети приложение должно создать разделы реестра и значения, описанные в этом разделе. Эти ключи и значения предоставляют MPR сведения о поставщиках сети, установленных в системе. MPR проверяет эти ключи при запуске и загружает библиотеки DLL поставщика сети, которые он находит.

Перед созданием набора ключей для хранения сведений о сетевом поставщике необходимо добавить имя поставщика сети в ключ заказа . Этот раздел является подразделом следующего ключа:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider

Ключ заказа содержит одно значение ProviderOrder, которое содержит список установленных поставщиков и указывает порядок их проверки во время операций, которые циклически проходят через поставщиков до тех пор, пока не будет найден поставщик, принимаюющий поставщик.

Значение ProviderOrder содержит разделенный запятыми список имен ключей. Каждое имя ключа в ProviderOrder определяет поставщика сети. Когда MPR циклически проходит через поставщиков, он вызывает их в том порядке, в котором они отображаются в этом списке.

Имя поставщика, заданное в ProviderOrder, также следует использовать в качестве имени раздела реестра, содержащего сведения об этом поставщике. Разделы реестра, относящиеся к поставщику, создаются как подразделы следующего раздела:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

Другими словами, имена поставщиков, указанные в ProviderOrder , являются путем к реестру ключей, относящихся к поставщику сети, относительно следующего пути:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

При установке службы поставщика сети приложение установки должно добавить ключ следующим образом:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services
            ProviderName

Где ProviderName — это имя поставщика сети, указанное в значении ProviderOrder ключа заказа . Значение Group в разделе ProviderName должно иметь значение NetworkProvider. Это идентифицирует службу как направляемую в группу поставщиков сети.

Необходимо также создать подраздел ProviderName, networkprovider. Этот ключ содержит следующие значения, описывающие поставщика сети.

Значение Описание
имя;
Содержит имя поставщика. Это имя отображается пользователю в качестве имени сети в диалоговых окнах обзора и должно соответствовать полю lpProvider , возвращаемого в структурах NETRESOURCE . Это название должно быть некоторым вариантом названия продукта, желательно с указанием компании, чтобы оно было четким и уникальным. Например, "MS-LanMan" является хорошим именем, в то время как "Сеть" будет плохим выбором.
ProviderPath
Содержит полный путь к библиотеке DLL, реализующей сетевой поставщик. MPR вызывает LoadLibrary по этому пути.

Следующие значения используются только сетевыми поставщиками, поддерживающими функции управления учетными данными, NPLogonNotify и NPPasswordChangeNotify.

Значение Описание
Класс
DWORD, определяющий класс или тип функциональных возможностей поставщика, поддерживаемых этим поставщиком. При необходимости значения могут быть соединены оператором OR . Допустимые для этого значения: WN_NETWORK_CLASS, WN_CREDENTIAL_CLASS, WN_PRIMARY_AUTHENT_CLASS и WN_SERVICE_CLASS.
Хотя поставщик может поддерживать функции основного средства проверки подлинности, для определения основного средства проверки подлинности будут использоваться другие средства.
Windows XP/2000: Переключение основных элементов проверки подлинности не поддерживается, поэтому это значение игнорируется.
AuthentProviderPath
Это полное имя файла для библиотеки DLL, которая экспортирует функции управления учетными данными. Это значение полезно (но не обязательно) только в том случае, если поставщик определяется как поставщик CREDENTIAL_CLASS или PRIMARY_AUTHENT_CLASS. Если это значение отсутствует для поставщика этого класса, функции управления учетными данными должны быть экспортированы из библиотеки DLL, определяемой значением ProviderPath. Это значение используется только в том случае, если желательно упаковать сетевые функции и функции диспетчера учетных данных в отдельные библиотеки DLL.

Помимо значений, используемых для регистрации поставщиков сетей и диспетчеров учетных данных, можно добавить в реестр значение для регистрации библиотеки DLL для получения уведомлений о подключении. Для этого создайте значение REG_EXPAND_SZ в следующем разделе:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider
               Notifyees

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

Пример

В следующем примере показаны разделы реестра для системы с установленными двумя поставщиками сети: LanmanWorkStation и AnotherNetSvc. AnotherNetSvc также является диспетчером учетных данных. В этом примере имена ключей выделены полужирным шрифтом, а имена значений — курсивом.

HKEY_LOCAL_MACHINE\СИСТЕМЫ\CurrentControlSet\Управления\NetworkProvider\Заказ

ProviderOrder = "LanmanWorkStation,AnotherNetSvc"

HKEY_LOCAL_MACHINE\СИСТЕМЫ\CurrentControlSet\Управления\NetworkProvider\Уведомления

MyNotifyApp = "c:\connect\connect.dll"

HKEY_LOCAL_MACHINE\СИСТЕМЫ\CurrentControlSet\Услуги\LanmanWorkStation\

Group = "NetworkProvider"

HKEY_LOCAL_MACHINE\СИСТЕМЫ\CurrentControlSet\Услуги\LanmanWorkStation\NetworkProvider

Name = "NT LanMan"ProviderPath = "ntlanman.dll"

Класс = 0x00000001 (WN_NETWORK_CLASS)

HKEY_LOCAL_MACHINE\СИСТЕМЫ\CurrentControlSet\Услуги\AnotherNetSvc\

Group = "NetworkProvider"

HKEY_LOCAL_MACHINE\СИСТЕМЫ\CurrentControlSet\Услуги\AnotherNetSvc\NetworkProvider

Name = "Another Network"ProviderPath = "c:\another\anet.dll"

Класс = 0x00000003 (WN_NETWORK_CLASS | WN_CREDENTIAL_CLASS)

AuthentProviderPath = "c:\another\anetCM.dll"