Bagikan melalui


Menangani peristiwa autentikasi hotspot

Windows 8, Windows 8.1, dan Windows 10 memicu peristiwa autentikasi hotspot ketika mendeteksi portal tawanan yang mendukung roaming Wireless Internet Service Provider (WISPr).

Ketika peristiwa terjadi, aplikasi penerima harus segera memanggil fungsi Windows.Networking.NetworkOperator.HotspotAuthentication.TryGetAuthenticationContext dengan menggunakan token peristiwa yang disediakan sebagai argumen untuk penanganan aktivitas. Fungsi ini mengembalikan objek yang mengelola upaya autentikasi hotspot. Jika fungsi gagal, penanganan aktivitas harus keluar tanpa melakukan tindakan tambahan.

Properti pada objek memungkinkan aplikasi Anda untuk mengambil item berikut:

  • SSID jaringan nirkabel.

  • Detail tentang adaptor jaringan yang tersambung ke hotspot.

  • URL yang berisi pesan WISPr.

  • Payload XML pesan WISPr.

  • URL autentikasi tempat kredensial diberikan.

API lain ada untuk mengambil item berikut:

Dengan menggunakan informasi ini dan informasi lain yang perlu diperoleh aplikasi Anda dari sistem lokal atau jaringan, kredensial dapat dihasilkan. Objek juga berisi metode yang memungkinkan aplikasi untuk melanjutkan atau menyelesaikan autentikasi hotspot.

Bagian berikut tersedia dalam topik ini:

Menerbitkan kredensial

Dalam kasus yang paling sederhana, aplikasi menghasilkan kredensial berdasarkan informasi yang dimilikinya atau dapat diambil. Misalnya, nama pengguna dan kata sandi dihasilkan dengan menggunakan informasi dalam payload WISPr dan informasi tentang adaptor jaringan.

Setelah melakukan tindakan apa pun yang diperlukan untuk menghasilkan atau mendapatkan kredensial, aplikasi memanggil metode IssueCredentials pada objek HotspotAuthenticationContext . Metode ini memungkinkan aplikasi untuk menyediakan hal-hal berikut:

  • Parameter UserName WISPr

  • Parameter Kata Sandi WISPr

  • Parameter non-standar arbitrer untuk disertakan dalam respons WISPr

  • Perilaku saat gagal

Jika server menolak kredensial yang disediakan oleh aplikasi, Windows memutuskan sambungan dari jaringan dan tidak mencoba kembali koneksi di sesi pengguna saat ini. Bendera akhir memungkinkan aplikasi untuk menunjukkan bahwa jika kredensial tidak berhasil, Windows tidak boleh secara otomatis mencoba kembali koneksi dengan menggunakan profil ini.

Ada dua variasi API ini. Metode IssueCredentials meneruskan parameter ke Windows lalu kembali secara instan. API ini tidak memberikan hasil dari upaya autentikasi. Metode IssueCredentialsAsync, yang diperkenalkan di Windows 8.1, adalah versi asinkron yang memungkinkan aplikasi untuk mengambil hasil upaya autentikasi.

Membatalkan autentikasi

Jika aplikasi menemukan bahwa aplikasi tidak dapat menghasilkan kredensial untuk jaringan saat ini (karena perjanjian roaming telah berubah, informasi tidak tersedia, atau karena alasan lain), aplikasi harus memanggil metode AbortAuthentication pada objek HotspotAuthenticationContext .

Windows terputus dari jaringan dan tidak memasang ulang sambungan di sesi pengguna saat ini. Fungsi ini menerima bendera yang menunjukkan Windows tidak boleh secara otomatis mencoba kembali koneksi menggunakan profil ini.

Catatan Metode ini tidak menghapus profil dari sistem, dan aplikasi dapat dimintai kredensial lagi jika pengguna secara manual mencoba terhubung ke jaringan. Jika profil dihapus sepenuhnya, aplikasi harus menyediakan file provisi baru yang menghapus profil terkait.

Menggunakan metode autentikasi alternatif

Jika aplikasi dapat mengautentikasi dengan menggunakan metode selain WISPr, aplikasi dapat melakukannya. Setelah berhasil mengautentikasi ke jaringan dengan menggunakan metode alternatif, itu harus menyelesaikan koneksi dengan memanggil metode SkipAuthentication pada objek HotspotAuthenticationContext . Ketika metode ini dipanggil, Windows mendeteksi kembali konektivitas ke Internet, sehingga membantu antarmuka pengguna (UI) untuk mencerminkan status terautentikasi dengan benar.

Catatan Peristiwa HotspotAuthentication tidak dipanggil untuk hotspot yang tidak mengiklankan dukungan untuk protokol WISPr. Namun, ini memungkinkan aplikasi untuk memilih protokol yang berbeda untuk digunakan sebagai respons, atau menggunakan versi kustom WISPr jika diperlukan.

Berinteraksi dengan pengguna

Jika interaksi pengguna diperlukan sebelum autentikasi dapat dilanjutkan, aplikasi harus memanggil metode TriggerAttentionRequired pada objek HotspotAuthenticationContext . Metode ini berguna dalam keadaan berikut:

  • Pengguna telah memilih untuk tidak menyimpan kredensial di aplikasi dan harus masuk.

  • Menyelesaikan koneksi akan membebankan biaya kartu kredit pengguna atau akun lain; oleh karena itu, persetujuan diperlukan sebelum melanjutkan.

  • Tidak ada kredit yang tersedia di akun pengguna, dan pembelian baru diperlukan.

Metode ini tidak menyelesaikan autentikasi. Ketika metode ini dipanggil, aplikasi meminta untuk dibuka di latar depan dengan menggunakan argumen yang ditentukan. Token peristiwa harus diteruskan ke aplikasi latar depan sehingga dapat mengambil objek HotspotAuthenticationContext lagi dan menyelesaikan autentikasi dengan menggunakan salah satu dari tiga metode lainnya.

Permintaan aplikasi untuk dibuka di latar depan tidak dijamin berhasil. Peristiwa HotspotAuthentication dapat terjadi karena koneksi otomatis saat komputer berada di Siaga Tersambung. Aplikasi ini diluncurkan hanya ketika komputer tidak lagi berada di Connected Standby, telah dibuka kuncinya, dan masih terhubung ke jaringan nirkabel. Karena ini menunda akses Internet hingga pengguna membuka kunci komputer, status ini harus dihindari setiap kali kredensial dapat dihasilkan secara otomatis.

Autentikasi WISPr