Freigeben über


INetwork2::IsDomainAuthenticatedBy-Methode (netlistmgr.h)

Fragt ab, ob die angegebene Domänenauthentifizierungsmethode für dieses Netzwerk erfolgreich war.

Syntax

HRESULT IsDomainAuthenticatedBy(
  NLM_DOMAIN_AUTHENTICATION_KIND domainAuthenticationKind,
  BOOL                           *pValue
);

Parameter

domainAuthenticationKind

Typ: [in] NLM_DOMAIN_AUTHENTICATION_KIND

Die spezifische Domänenauthentifizierungsmethode, zu der abfragen werden soll.

pValue

Typ: [out, retval] BOOL*

Die Funktion leitet pValue ab und weist zu, wenn dieses Netzwerk die gleiche Domänenauthentifizierungsart TRUE aufweist wie die im parameter domainAuthenticationKind angegebene. Oder FALSE wenn dieses Netzwerk eine andere Domänenauthentifizierungsart als die in domainAuthenticationKind angegebene hat.

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK zurück.

Beispiel

In diesem Beispiel möchte ein hypothetisches Netzwerkdiagnosetool sicherstellen, dass Verbindungen mit einem Unternehmensnetzwerk über die richtigen Authentifizierungseigenschaften verfügen.

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.
		}
	}
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 11 Build 22621
Zielplattform Windows
Kopfzeile netlistmgr.h

Weitere Informationen