Normalmente não peço ajuda, mas fiquei presa nisto por alguns dias - e qualquer indicação que alguém possa ter será muito apreciada.
Eu criei um hotspot wifi (portal cativo / jardim murado) - usando o Windows Server 2012, o Unbound DNS e um roteador Apple Extreme. Tenho o IIS em execução, que cuida dos redirecionamentos usando o regravador de URL e tudo é bom para dispositivos iOS.
Estou tentando fazer com que dispositivos Android exibam a janela pop-up CNA quando eles se conectam à rede wifi. Eu estou fazendo isso por esta regra no meu web.config
<rule name="android rule" enabled="true" stopProcessing="false">
<match url="(.*)generate_204(.*)" />
<!-- <action type="Redirect" url="http://supplierfinder.ubm-com.net/WebPage.cshtml" appendQueryString="false" redirectType="Temporary" /> -->
<action type="Rewrite" url="WebPage.cshtml" appendQueryString="false" />
</rule>
Tenho certeza de que esse redirecionamento está funcionando e veiculando a página quando o dispositivo se conecta à rede. Aqui está uma entrada de log
2015-09-05 19:06:48 W3SVC2 WIN-8CHVURO21ID 10.0.1.2 GET / generate_204 - 80 - 10.0.1.12 HTTP / 1.1 Dalvik / 1.6.0 + (Linux; + U; + Android + 4.4.2 + GT-N7100 + Build / KOT49H) - - customers3.google.com 200 0 0 4143
como você pode ver - recebo a solicitação link do Android - e estou respondendo com um URL Reescreva para um página válida (que está sendo veiculada) 200. O que eu esperaria que acontecesse é que o Dispositivo Android executaria a solicitação novamente - e depois abriria um navegador e exibiria a página. Isso não acontece.
Eu revi o código-fonte do Android para conexões de jardim murado e, até onde eu posso ver, o que estou retornando parece válido ... (abaixo está o código-fonte do sistema operacional Android - observe a lógica 204). / p>
urlConnection.setReadTimeout(WALLED_GARDEN_SOCKET_TIMEOUT_MS);
urlConnection.setUseCaches(false);
urlConnection.getInputStream();
// We got a valid response, but not from the real google
return urlConnection.getResponseCode() != 204;
} catch (IOException e) {
if (DBG) {
log("Walled garden check - probably not a portal: exception " + e);
}
return false;
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
}
Qualquer indicação sobre o que estou fazendo de errado seria muito apreciada.
A configuração é
Windows Server 2012 - usando DNS não vinculado, IIS 8.5 com extensões de regravação de URL (http na porta 80 ativada) Servidor DHCP no roteador Airport Extreme (já que não consigo desativá-lo)
Meu DNS parece com isso
interface: 0.0.0.0
controle de acesso: 10.0.0.0/8 permitir
local-zone: "." redirect
local-data: ". A 10.0.1.2"
Estou preso no momento - em busca de uma correção no google tem sido um pouco infrutífero como todo mundo faz portais cativos com produtos de terceiros - estou começando a pensar que eu deveria ter tomado essa abordagem também:)
Obrigado pela leitura ... felicidades
Steve