俘虏门户/围墙花园popup窗口上的android不出现

我通常不会寻求帮助,但是我已经坚持了几天 – 任何人都可能有的指针将非常感激。

我创build了一个WiFi热点(强制门户/围墙花园) – 使用Windows Server 2012,Unbound DNS和Apple Extreme路由器。 我有IIS运行使用URL重写的照顾redirect,所有的iOS设备都很好。

我试图让android设备在joinwifinetworking时显示popup的CNA窗口。 我在我的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> 

我确信这个redirect正在工作,并在设备连接到networking时提供页面。 这是一个日志条目

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) – – clients3.google.com 200 0 0 4143

正如你所看到的 – 我得到了android http://client32.google.com/generate_204请求 – 我正在回应一个URL重写到一个有效的页面(正在服务)200.我所期望的Android设备会再次执行请求 – 然后打开浏览器并显示页面。 这不会发生。

我已经审查了围墙花园连接的Android源代码,并且据我所见,我回来看起来有效..(下面是来自Android操作系统的源代码 – 注意204逻辑)。

  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(); } } 

任何指针,我做错了将不胜感激。

设置是

Windows Server 2012 – 使用Unbound DNS,带有URL Rewrite扩展的IIS 8.5(启用了端口80上的http)Airport Extreme路由器上的DHCP服务器(因为我无法禁用它)

我的DNS看起来像这样

界面:0.0.0.0

访问控制:10.0.0.0/8允许

 local-zone: "." redirect local-data: ". A 10.0.1.2" 

我困在眼下 – 在谷歌search修复一直没有结果,因为每个人都与第三方产品的圈养门户 – 我开始认为我应该采取的方法也:)

感谢阅读…欢呼声

史蒂夫