INetwork2::IsDomainAuthenticatedBy 메서드(netlistmgr.h)
이 네트워크에 대해 지정된 도메인 인증 방법이 성공했는지 여부를 쿼리합니다.
구문
HRESULT IsDomainAuthenticatedBy(
NLM_DOMAIN_AUTHENTICATION_KIND domainAuthenticationKind,
BOOL *pValue
);
매개 변수
domainAuthenticationKind
형식: [in] NLM_DOMAIN_AUTHENTICATION_KIND
쿼리할 특정 도메인 인증 방법입니다.
pValue
형식: [out, retval] BOOL*
함수는 pValue를 역참조하고 이 네트워크에 domainAuthenticationKind 매개 변수에 지정된 것과 동일한 도메인 인증 종류가 있는지 또는 FALSE
이 네트워크에 domainAuthenticationKind에 지정된 것과 다른 도메인 인증 종류가 있는지를 할당 TRUE
합니다.
반환 값
성공하면 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 |
헤더 | netlistmgr.h |