How do entire networks and CNSetSupportedSSID work?

I am reading documentation and it says:

By invoking the CNSetSupportedSSIDs function, the application can register the Captive Network Support wireless network SSID list, taking responsibility for authentication with these networks. Typically, when a user joins a network in an idle state, Captive Network Support provides a web sheet that allows the user to authenticate with the network. However, if the application has registered the SSID in the network included in the network, but the web list is prohibited, and the user can complete authentication in the corresponding application.

What does “user can complete authentication in the corresponding application” mean exactly?

  • Should the user launch this application for authentication? If so, will the user be notified in some way that he / she should do this?
  • Will iOS launch this application so that the user can authenticate?
  • Will the application receive a callback?

I am particularly interested in how this should work if one application is registered to work with the capture network and the other tries to access the network when the user is not yet authenticated.

+6
source share
1 answer

It seems that the open API is not too much for you. It suppresses the message, but the user must manually start another application to log in.

However, there is a special right, com.apple.developer.CaptiveNetworkPlugin, which allows you to use a bunch of private APIs in the CaptiveNetwork framework to create a real hidden plugin. Some companies work with Apple to do this ( https://devforums.apple.com/message/792112#792112 ). However, this is not a widely available API.

BTW. Here is some additional information from the guy who drew the design of one of these applications: http://kalapun.com/posts/reverse-engineering-ios-app/

+8
source

Source: https://habr.com/ru/post/955810/


All Articles