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


Метод INetwork2::IsDomainAuthenticatedBy (netlistmgr.h)

Запрашивает, успешно ли выполнен указанный метод проверки подлинности домена для этой сети.

Синтаксис

HRESULT IsDomainAuthenticatedBy(
  NLM_DOMAIN_AUTHENTICATION_KIND domainAuthenticationKind,
  BOOL                           *pValue
);

Параметры

domainAuthenticationKind

Тип: [in] NLM_DOMAIN_AUTHENTICATION_KIND

Конкретный метод проверки подлинности домена для запроса.

pValue

Тип: [out, retval] BOOL*

Функция разыменовывает pValue и назначает TRUE значение , если эта сеть имеет тот же тип проверки подлинности домена, что и указанный в параметре domainAuthenticationKind ; или FALSE значение , если эта сеть имеет другой тип проверки подлинности домена, отличный от типа, указанного в domainAuthenticationKind.

Возвращаемое значение

В случае успешного выполнения возвращает S_OK.

Пример

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

void LogToConsole(std::wstring output, std::wstring networkName)
{
	// Implementation not shown for brevity.
}

void RunDiagnostics()
{
	winrt::com_ptr<::INetworkListManager> nlm;
	winrt::com_ptr<::IEnumNetworks> enumNetworks;
	winrt::com_ptr<::INetwork> network;
	ULONG numberOfNetworksEnumerated{ 0 };
	winrt::check_hresult(::CoCreateInstance(CLSID_NetworkListManager, nullptr, CLSCTX_ALL, IID_PPV_ARGS(&nlm)));
	winrt::check_hresult(nlm->GetNetworks(NLM_ENUM_NETWORK_ALL, enumNetworks.put()));

	while ((enumNetworks->Next(1, network.put(), &numberOfNetworksEnumerated) == S_OK))
	{
		try
		{
			if (numberOfNetworksEnumerated == 1)
			{
				winrt::com_ptr<::INetwork2> network2{ network.as<::INetwork2>() };
				BSTR networkName{};
				HRESULT hr{ network2->GetName(&networkName) };
				winrt::check_hresult(network2->GetName(&networkName));

				BOOL isLdapAuthenticated{ FALSE };
				BOOL isTlsAuthenticated{ FALSE };
				BOOL isNotDomainAuthenticated{ FALSE };
				winrt::check_hresult(network2->IsDomainAuthenticatedBy(NLM_DOMAIN_AUTHENTICATION_KIND_LDAP, &isLdapAuthenticated));
				winrt::check_hresult(network2->IsDomainAuthenticatedBy(NLM_DOMAIN_AUTHENTICATION_KIND_TLS, &isTlsAuthenticated));
				winrt::check_hresult(network2->IsDomainAuthenticatedBy(NLM_DOMAIN_AUTHENTICATION_KIND_NONE, &isNotDomainAuthenticated));

				if (!isNotDomainAuthenticated)
				{
					if (!!isLdapAuthenticated)
					{
						LogToConsole(L"Network is domain authenticated via LDAP", networkName);
					}

					if (!!isTlsAuthenticated)
					{
						LogToConsole(L"Network is domain authenticated via TLS", networkName);
					}

					if (!isLdapAuthenticated && !isTlsAuthenticated)
					{
						LogToConsole(L"Network was not expected to be domain authenticated for any other kinds", networkName);
					}
				}
				else
				{
					LogToConsole(L"Network is not domain authenticated", networkName);
				}
			}
		}
		catch (...)
		{
			// Handle exception.
		}
	}
}

Требования

Требование Значение
Минимальная версия клиента сборка Windows 11 22621
Целевая платформа Windows
Header netlistmgr.h

См. также раздел