如何创建WiFi弹出登录页面

Bar*_*own 30 iphone wifi

当我去一个有WiFi热点的地方(比如Panera Bread)并连接我的iPhone时,热点登录页面会显示为弹出窗口.也就是说,无论我正在运行什么应用程序或我正在使用哪个网页,登录页面都会从底部向上滚动,询问我的登录凭据,然后消失.

但是在其他一些热点地区,在我去Safari并尝试加载网页之前,我没有获得登录页面.

什么是iPhone寻找,导致它在一些热点而不是其他热点弹出登录页面?是否有特殊的HTML元标记?或者它与重定向的实现方式有关?

Iva*_*ica 36

我设法找到了这种身份验证类型的正确术语:"强制门户网站".在冲压Captive Portal iPhone到谷歌从这些页面翻了几个技术细节:一个,2,3.

要实施Wi-Fi弹出登录页面:

  1. DNS请求www.apple.com一定不能失败
  2. 不得返回带有特殊用户代理的http://www.apple.com/library/test/success.html的 HTTP请求.CaptiveNetworkSupport/1.0 wisprSuccess

我没有测试过这个,但听起来不错.


下面的评论提到iOS 7的行为不同,可能会查询多个服务器.我没有测试过这个.最简单的方法是将所有HTTP通信重定向到您的登录页面,并阻止所有非HTTP通信.

微软的强制门户检测使用类似于 iOS7之前的行为:其网络连接状态指示器尝试联系http://www.msftncsi.com.Windows 8和8.1还包括对WISPr的支持.

从AOSP 4.0.1开始,Android的强制门户检测尝试联系http://clients3.google.com/generate_204http://www.google.com/blank.html.

因此,为了尽可能通用,您只需要阻止除身份验证之外的所有通信,并在登录页面上包含WISPr支持.

我会说"在你的网络上进行适当的身份验证" - 一些通用的东西,如PEAP + MSCHAPv2 - 但Windows让你的用户设置起来非常痛苦.我不知道谁认为"使用您的Windows身份验证详细信息"在不属于公司域网络的计算机上做出合理的默认设置,甚至为什么"检查证书有效性"是一个合理的默认设置,因为大多数网络都不会考虑获得适当的证书优先权.

  • @sailor只是部分正确.在IOS7中,苹果已经从测试一个页面,到200多个随机站点,看看wifi是否打开.您现在需要测试用户代理而不是URL. (2认同)