다음을 통해 공유


핫스팟 인증 이벤트 처리

WISPr(무선 인터넷 서비스 공급자 로밍)을 지원하는 포로 포털을 검색하면 핫스팟 인증 이벤트를 Windows 8, Windows 8.1 및 Windows 10 트리거합니다.

이벤트가 발생하면 수신 앱은 이벤트 처리기에 대한 인수로 제공되는 이벤트 토큰 을 사용하여 Windows.Networking.NetworkOperator.HotspotAuthentication.TryGetAuthenticationContext 함수를 즉시 호출해야 합니다. 이 함수는 핫스팟 인증 시도를 관리하는 개체를 반환합니다. 함수가 실패하는 경우 이벤트 처리기는 추가 작업을 수행하지 않고 종료해야 합니다.

개체의 속성을 사용하면 앱에서 다음 항목을 검색할 수 있습니다.

  • 무선 네트워크의 SSID입니다.

  • 핫스팟에 연결된 네트워크 어댑터에 대한 세부 정보입니다.

  • WISPr 메시지가 포함된 URL입니다.

  • WISPr 메시지의 XML 페이로드입니다.

  • 자격 증명이 제공되는 인증 URL입니다.

다른 API는 다음 항목을 검색하기 위해 존재합니다.

이 정보 및 앱이 로컬 시스템 또는 네트워크에서 가져와야 하는 기타 정보를 사용하여 자격 증명을 생성할 수 있습니다. 또한 개체에는 앱이 핫스폿 인증을 계속하거나 완료할 수 있도록 허용하는 메서드가 포함되어 있습니다.

이 항목에서는 다음 섹션을 사용할 수 있습니다.

자격 증명 발급

가장 간단한 경우 앱은 또는 검색할 수 있는 정보를 기반으로 자격 증명을 생성합니다. 예를 들어 WISPr 페이로드의 정보 및 네트워크 어댑터에 대한 정보를 사용하여 사용자 이름과 암호가 생성됩니다.

자격 증명을 생성하거나 가져오는 데 필요한 작업을 수행한 후 앱은 HotspotAuthenticationContext 개체에서 IssueCredentials 메서드를 호출합니다. 이 메서드를 사용하면 앱에서 다음을 제공할 수 있습니다.

  • WISPr UserName 매개 변수

  • WISPr 암호 매개 변수

  • WISPr 응답에 포함할 임의의 비표준 매개 변수

  • 실패 시 동작

서버가 앱에서 제공하는 자격 증명을 거부하는 경우 Windows는 네트워크에서 연결을 끊고 현재 사용자 세션에서 연결을 다시 시도하지 않습니다. 최종 플래그를 사용하면 애플리케이션에서 자격 증명이 실패하면 Windows에서 이 프로필을 사용하여 연결을 자동으로 다시 시도해서는 안 됨을 나타낼 수 있습니다.

이 API에는 두 가지 변형이 있습니다. IssueCredentials 메서드는 매개 변수를 Windows에 전달한 다음 즉시 반환합니다. 이 API는 인증 시도의 결과를 제공하지 않습니다. Windows 8.1 도입된 IssueCredentialsAsync 메서드는 애플리케이션이 인증 시도의 결과를 검색할 수 있도록 하는 비동기 버전입니다.

인증 중단

앱이 현재 네트워크에 대한 자격 증명을 생성할 수 없다는 것을 발견하면(로밍 계약이 변경되었거나 정보를 사용할 수 없거나 다른 이유로 인해) HotspotAuthenticationContext 개체에서 AbortAuthentication 메서드를 호출해야 합니다.

Windows는 네트워크에서 연결을 끊고 현재 사용자 세션에서 연결을 다시 시도하지 않습니다. 이 함수는 Windows가 이 프로필을 사용하여 연결을 자동으로 다시 시도해서는 안 됨을 나타내는 플래그를 허용합니다.

참고 이 메서드는 시스템에서 프로필을 제거하지 않으며 사용자가 네트워크에 수동으로 연결을 시도하는 경우 앱에 자격 증명을 다시 요청할 수 있습니다. 프로필이 완전히 제거된 경우 앱은 연결된 프로필을 제거하는 새 프로비저닝 파일을 제공해야 합니다.

대체 인증 방법 사용

앱이 WISPr 이외의 메서드를 사용하여 인증할 수 있는 경우 이렇게 할 수 있습니다. 대체 메서드를 사용하여 네트워크에 성공적으로 인증한 후에는 HotspotAuthenticationContext 개체에서 SkipAuthentication 메서드를 호출하여 연결을 완료해야 합니다. 이 메서드가 호출되면 Windows는 인터넷에 대한 연결을 다시 검색하여 UI(사용자 인터페이스)가 인증된 상태를 올바르게 반영하도록 지원합니다.

참고 HOTSPOTAuthentication 이벤트는 WISPr 프로토콜에 대한 지원을 보급하지 않는 핫스팟에 대해 호출되지 않습니다. 그러나 이를 통해 앱은 응답에 사용할 다른 프로토콜을 선택하거나 필요한 경우 사용자 지정 버전의 WISPr을 사용할 수 있습니다.

사용자와 상호 작용

인증을 진행하기 전에 사용자 상호 작용이 필요한 경우 앱은 HotspotAuthenticationContext 개체에서 TriggerAttentionRequired 메서드를 호출해야 합니다. 이 메서드는 다음과 같은 경우에 유용합니다.

  • 사용자가 앱에 자격 증명을 저장하지 않도록 선택했으며 로그인해야 합니다.

  • 연결을 완료하면 사용자의 신용 카드 또는 기타 계정이 청구되므로 계속하기 전에 동의가 필요합니다.

  • 사용자의 계정에서 크레딧을 사용할 수 없으며 새 구매가 필요합니다.

이 메서드는 인증을 완료하지 않습니다. 이 메서드가 호출되면 지정된 인수를 사용하여 앱이 포그라운드에서 열리도록 요청합니다. 이벤트 토큰을 포그라운드 애플리케이션에 전달하여 HotspotAuthenticationContext 개체를 다시 검색하고 다른 세 가지 방법 중 하나를 사용하여 인증을 완료할 수 있도록 해야 합니다.

포그라운드에 열려는 앱의 요청이 성공하도록 보장되지는 않습니다. 컴퓨터가 연결된 대기 상태인 동안 자동 연결로 인해 HotspotAuthentication 이벤트가 발생할 수 있습니다. 앱은 컴퓨터가 더 이상 연결된 대기 상태가 아니고 잠금이 해제되어 무선 네트워크에 연결된 경우에만 시작됩니다. 이렇게 하면 사용자가 컴퓨터의 잠금을 해제할 때까지 인터넷 액세스가 지연되므로 자격 증명을 자동으로 생성할 수 있을 때마다 이 상태를 피해야 합니다.

WISPr 인증