로그인 관리

[이 페이지와 연결된 기능, Windows 미디어 플레이어 SDK는 레거시 기능입니다. 그것은 MediaPlayer에 의해 대체되었습니다. MediaPlayer 는 Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 Windows 미디어 플레이어 SDK 대신 MediaPlayer를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

Windows 미디어 플레이어 사용자가 형식 1 온라인 저장소에 로그인하는 다양한 방법을 지원합니다. 플레이어는 표준 로그인 대화 상자를 제공하지만 온라인 스토어는 표준 대화 상자 대신 사용할 수 있는 웹 페이지를 제공할 수 있습니다.

사용자는 Windows 미디어 플레이어 사용자 인터페이스와 상호 작용하거나 온라인 스토어에서 제공하는 검색 페이지와 상호 작용하여 로그인 시도를 시작할 수 있습니다. 사용자가 검색 페이지와 상호 작용하여 로그인 시도를 시작하는 경우 검색 페이지의 스크립트는 External.attemptLogin 메서드를 호출합니다.

사용자의 로그인 상태는 온라인 스토어에서 기본. 사용자의 로그인 상태가 변경되거나 로그인 시도가 실패하는 경우 온라인 스토어의 플러그 인은 IWMPContentPartnerCallback::Notify를 호출하고 wmpcnLoginStateChange를 형식 매개 변수에 전달하여 Windows 미디어 플레이어 알립니다. Player는 External.OnLoginChange 이벤트를 발생시켜 검색 페이지에 알림을 전달합니다.

OnLoginChange에 대한 호출이 반드시 사용자의 로그인 상태가 변경되었음을 의미하지는 않습니다. 로그인 시도가 실패했음을 의미할 수 있습니다. 사용자의 로그인 상태를 확인하기 위해 OnLoginChange 이벤트 처리기는 External.userLoggedIn 속성을 검사할 수 있습니다.

다음 섹션에서는 표준 로그인 프로세스, 대체 로그인 프로세스 및 로그아웃 프로세스에 대해 설명합니다.

표준 로그인

표준 로그인 프로세스에는 다음 단계가 포함됩니다.

  1. 사용자는 Windows 미디어 플레이어 사용자 인터페이스와 상호 작용하거나 검색 페이지와 상호 작용하여 로그인 시도를 시작합니다.
  2. Windows 미디어 플레이어 사용자에게 사용자 이름 및 암호를 묻는 대화 상자를 표시합니다.
  3. 사용자가 대화 상자에서 로그인 단추를 클릭하면 Windows 미디어 플레이어 온라인 스토어의 플러그 인에 의해 구현되는 IWMPContentPartner::Login을 호출합니다.
  4. 플러그 인은 온라인 저장소와 통신하고 성공하거나 사용자 로그인에 실패합니다.
  5. 로그인 시도가 성공하면 플러그 인은 iWMPContentPartnerCallback::Notify를 호출하여 pContext 매개 변수의 boolVal 멤버에 VARIANT_TRUE 전달하여 Windows 미디어 플레이어 알립니다. 로그인 시도가 실패하면 플러그 인은 iWMPContentPartnerCallback::Notify를 호출하여 pContext 매개 변수의 ulVal 멤버에 32비트 값을 전달하여 Windows 미디어 플레이어 알립니다. 그런 다음 플레이어는 해당 32비트 값을 IWMPContentPartner::GetItemInfo 에 전달하여 오류를 처리할 수 있는 웹 페이지의 URL을 가져옵니다.

대체 로그인

온라인 스토어의 플러그 인에 대한 기능 레지스트리 항목에 SUBSCRIPTION_CAP_ALTLOGIN 플래그가 설정된 경우 Windows 미디어 플레이어 표준 로그인 대화 상자를 사용하지 않습니다. 대신 Windows 미디어 플레이어 IWMPContentPartner::GetItemInfo를 호출하여 로그인 프로세스를 수행하는 웹 페이지의 URL을 검색합니다. 기능 레지스트리 항목에 대한 자세한 내용은 Type 1 Online Store의 레지스트리 키 및 항목을 참조하세요.

플레이어는 GetItemInfo를 두 번 호출합니다. 한 번 g_szItemInfo_ALTLoginURL 전달하여 로그인 웹 페이지의 URL을 검색하고 g_szItemInfo_ALTLoginCaption 전달하여 웹 페이지를 호스트하는 창의 캡션 검색합니다. GetItemInfo가 로그인 웹 페이지의 URL을 반환하는 경우 URL에 다음 매개 변수 문자열을 추가하여 로그인 창의 크기를 지정할 수 있습니다.

? DlgX=width&DlgY=height

매개 변수 문자열 에서 너비높이는 창의 너비와 높이(픽셀)입니다. 예를 들어 GetItemInfo 는 다음 문자열을 반환하여 너비가 800픽셀이고 높이가 400픽셀인 창에 AltLogin.htm을 표시하도록 지정할 수 있습니다.

https://proseware.com/AltLogin.htm?DlgX=800&DlgY=400

대체 로그인 프로세스에는 다음 단계가 포함됩니다.

  1. 사용자는 Windows 미디어 플레이어 사용자 인터페이스와 상호 작용하거나 검색 페이지와 상호 작용하여 로그인 시도를 시작합니다.
  2. Windows 미디어 플레이어 온라인 스토어에서 제공하는 로그인 웹 페이지를 표시하는 모달 창을 엽니다.
  3. 웹 페이지는 온라인 저장소와 통신하며 사용자 로그인에 성공하거나 실패합니다.
  4. 로그인 시도가 성공하면 웹 페이지는 External.sendMessage를 호출하여 온라인 스토어의 플러그 인에 알릴 수 있으며, 이로 인해 IWMPContentPartner::SendMessage호출됩니다. 온라인 스토어의 플러그 인은 IWMPContentPartner::SendMessage에 전달된 매개 변수를 검사하여 로그인 시도가 성공했음을 확인합니다. 이러한 매개 변수는 Windows 미디어 플레이어 해석되지 않으며 온라인 스토어에만 의미가 있습니다. 플러그 인은 IWMPContentPartnerCallback::Notify를 호출하여 pContext 매개 변수의 boolVal 멤버에 VARIANT_TRUE 전달합니다. 로그인에 실패하면 온라인 스토어에서 사용자를 지원하는 방법을 결정해야 합니다. 한 가지 가능성은 대체 로그인 웹 페이지를 호스팅하는 새 웹 페이지를 모달 창에 표시하는 것입니다.

로그아웃

로그아웃 프로세스에는 다음 단계가 포함됩니다.

  1. 사용자는 Windows 미디어 플레이어 사용자 인터페이스와 상호 작용하거나 검색 페이지와 상호 작용하여 로그아웃 시도를 시작합니다.
  2. Windows 미디어 플레이어 호출 IWMPContentPartner::Logout- 온라인 스토어의 플러그 인에 의해 구현됩니다.
  3. 플러그 인은 온라인 저장소와 통신하며 사용자를 성공적으로 로그아웃하거나 로그아웃하지 못합니다.
  4. 로그아웃 시도가 성공하면 플러그 인은 iWMPContentPartnerCallback::Notify를 호출하여 pContext 매개 변수의 boolVal 멤버에 VARIANT_FALSE 전달하여 Windows 미디어 플레이어 알립니다.

로그인 또는 로그아웃 시도가 성공하면 온라인 스토어의 플러그 인은 IWMPContentPartnerCallback::Notify를 호출하여 형식 매개 변수에 wmpcnLoginStateChange를 전달합니다. 플러그 인은 pContext 매개 변수를 사용하여 사용자의 현재 로그인 상태를 지정합니다. 플러그 인이 pContext-boolVal>을 VARIANT_TRUE 설정하면 사용자가 로그인됩니다. 플러그 인이 pContext-boolVal>을 VARIANT_FALSE 설정하면 사용자가 로그아웃됩니다. pContext는 시도의 성공 또는 실패를 나타내지 않고 사용자의 현재 로그인 상태를 나타냅니다.

External.attemptLogin

External.OnLoginChange 이벤트

External.userLoggedIn

IWMPContentPartner::Login

IWMPContentPartner::Logout

유형 1 온라인 스토어에 대한 프로그래밍 가이드