Configurei o Radius Server no Windows Server 2016 e quero me conectar à rede Enterprise WiFi usando meu aplicativo. Tentei fazer os seguintes passos:
Defina o perfil sem credenciais usandoPerfil WlanSet(usei perfil importado do netsh com algumas modificações)
Em seguida, defina o perfil xml abaixo com meu nome de usuário e senha paraWlanSetProfileEapXmlUserData:
<?xml version="1.0" ?>
<EapHostUserCredentials xmlns="http://www.microsoft.com/provisioning/EapHostUserCredentials"
xmlns:eapCommon="http://www.microsoft.com/provisioning/EapCommon"
xmlns:baseEap="http://www.microsoft.com/provisioning/BaseEapMethodUserCredentials">
<EapMethod>
<eapCommon:Type>26</eapCommon:Type>
<eapCommon:AuthorId>0</eapCommon:AuthorId>
</EapMethod>
<Credentials xmlns:eapUser="http://www.microsoft.com/provisioning/EapUserPropertiesV1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:baseEap="http://www.microsoft.com/provisioning/BaseEapUserPropertiesV1"
xmlns:MsPeap="http://www.microsoft.com/provisioning/MsPeapUserPropertiesV1"
xmlns:MsChapV2="http://www.microsoft.com/provisioning/MsChapV2UserPropertiesV1">
<baseEap:Eap>
<baseEap:Type>26</baseEap:Type>
<MsChapV2:EapType>
<MsChapV2:Username>test</MsChapV2:Username>
<MsChapV2:Password>test</MsChapV2:Password>
</MsChapV2:EapType>
</baseEap:Eap>
</Credentials>
</EapHostUserCredentials>
Então eu usoConexão Wlanfunção e função de retorno de chamada para verificar a conexão. Ao conectar, recebo o seguinte problema:
NotificationCode retorna o código 8 (wlan_notification_acm_scan_fail) e depois 11 (wlan_notification_acm_connection_attempt_fail).
Além disso, nos documentos do MS:
wlan_notification_acm_scan_fail:
Falha na verificação de redes conectáveis.
O membro pData da estrutura WLAN_NOTIFICATION_DATA aponta para um valor de tipo de dados WLAN_REASON_CODE que identifica o motivo da falha na operação WLAN.
Então, verifiquei o pData quando esse problema ocorre e ele retorna o seguinte motivo:
wlan_notification_acm_scan_fail "A operação foi bem sucedida."
Mas a rede não está conectada. Agradeço antecipadamente por sua ajuda.
Responder1
Eu corrigi esse problema. O problema ocorreu porque PerformServerValidation foi definido como true e exibiu a caixa de diálogo de notificação para verificar o certificado no Windows, por isso retornou:
wlan_notification_acm_scan_fail "A operação foi bem sucedida."
Definir PerformServerValidation como false corrigiu o problema (função WlanSetProfile).
<PerformServerValidation xmlns=\"http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2\">false</PerformServerValidation>
Além disso, para a função WlanSetProfileEapXmlUserData, forneci este perfil:
<?xml version="1.0" ?>
<EapHostUserCredentials
xmlns="http://www.microsoft.com/provisioning/EapHostUserCredentials"
xmlns:eapCommon="http://www.microsoft.com/provisioning/EapCommon"
xmlns:baseEap="http://www.microsoft.com/provisioning/BaseEapMethodUserCredentials">
<EapMethod>
<eapCommon:Type>25</eapCommon:Type>
<eapCommon:AuthorId>0</eapCommon:AuthorId>
</EapMethod>
<Credentials
xmlns:eapUser="http://www.microsoft.com/provisioning/EapUserPropertiesV1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:baseEap="http://www.microsoft.com/provisioning/BaseEapUserPropertiesV1"
xmlns:MsPeap="http://www.microsoft.com/provisioning/MsPeapUserPropertiesV1"
xmlns:MsChapV2="http://www.microsoft.com/provisioning/MsChapV2UserPropertiesV1">
<baseEap:Eap>
<baseEap:Type>25</baseEap:Type>
<MsPeap:EapType>
<baseEap:Eap>
<baseEap:Type>26</baseEap:Type>
<MsChapV2:EapType>
<MsChapV2:Username>username</MsChapV2:Username>
<MsChapV2:Password>password</MsChapV2:Password>
</MsChapV2:EapType>
</baseEap:Eap>
</MsPeap:EapType>
</baseEap:Eap>
</Credentials>
</EapHostUserCredentials>
Agora ele se conecta com sucesso à rede corporativa. O problema está resolvido. Obrigado.