Udostępnij przez


Uwierzytelnianie (zestaw SDK w formacie Windows Media Format 11)

[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Source Reader i składnik zapisywania ujścia . czytnika źródeł i składników zapisywania ujścia zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał czytnika źródeł i modułu zapisywania ujścia zamiast zestawu SDK windows Media Format 11, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Obiekt czytelnika może sprostać wyzwaniom związanym z uwierzytelnianiem sieciowym, w tym uwierzytelnianiem szyfrowym i uwierzytelnianiem NTLM. W niektórych przypadkach aplikacja musi podać poświadczenia użytkownika za pomocą interfejsu wywołania zwrotnego:

  • Uwierzytelnianie szyfrowane: aplikacja musi zaimplementować interfejs IWMCredentialCallback zgodnie z opisem w dalszej części tego tematu.

  • Uwierzytelnianie NTLM: czytelnik automatycznie odpowiada przy użyciu poświadczeń logowania użytkownika. Jeśli bieżący użytkownik ma uprawnienia do logowania się na serwerze, aplikacja nie musi wykonywać żadnych czynności. Jeśli użytkownik nie ma autoryzacji, aplikacja musi zaimplementować interfejs IWMCredentialCallback.

    Nuta

    Usługa Windows Media Services w wersji 4.1 nie obsługuje uwierzytelniania NTLM za pośrednictwem serwera proxy. Uwierzytelnianie NTLM wymaga kilku wymiany klient-serwer na tym samym połączeniu, a wersja 4.1 nie zachowuje trwałego połączenia z serwerem proxy. Usługa Windows Media Services 9 Series w systemie Microsoft Windows Server 2003 obsługuje uwierzytelnianie NTLM za pośrednictwem serwera proxy, o ile serwer proxy obsługuje połączenia o zachowaniu aktywności.

     

Jak wspomniano, w niektórych przypadkach aplikacja musi podać poświadczenia użytkownika. Dzieje się tak za pośrednictwem interfejsu IWMCredentialCallback, który ma jedną metodę, AcquireCredentials. Aby obsługiwać uwierzytelnianie, zaimplementuj ten interfejs w aplikacji. Obiekt czytelnika wykonuje zapytania dotyczące tego interfejsu przez wywołanie QueryInterface w IWMReaderCallback wskaźnika otrzymanego z aplikacji w metodzie IWMReader::Open. Jeśli obiekt czytelnika musi uzyskać poświadczenia użytkownika, wywołuje metody AcquireCredentials aplikacji.

Jeśli poświadczenia zostaną wysłane za pośrednictwem sieci bez szyfrowania, czytnik ustawia flagę WMT_CREDENTIAL_CLEAR_TEXT w pdwFlags parametru. Dzięki temu aplikacja może ostrzec użytkownika, że jego poświadczenia zostaną wysłane w postaci zwykłego tekstu.

W przeciwnym razie obiekt czytelnika automatycznie szyfruje poświadczenia przed wysłaniem ich za pośrednictwem sieci. Aplikacja może zwrócić je do obiektu czytnika w postaci zwykłego tekstu. Ponadto jeśli obiekt czytelnika ustawia flagę WMT_CREDENTIAL_ENCRYPT, oznacza to, że czytelnik obsługuje pobieranie zaszyfrowanych poświadczeń z aplikacji. W takim przypadku aplikacja może zwrócić poświadczenia w postaci zwykłego tekstu lub zaszyfrować je za pomocą funkcji CryptProtectData, która została opisana w dokumentacji zestawu SDK platformy. Jeśli aplikacja szyfruje poświadczenia, musi ustawić flagę WMT_CREDENTIAL_ENCRYPT w pdwFlags parametr przed zwróceniem metody.

Ogólnie rzecz biorąc, nie jest konieczne szyfrowanie danych, ponieważ w razie potrzeby obiekt czytelnika szyfruje dane. Jednak szyfrowanie może być przydatne, jeśli aplikacja przechowuje nazwę użytkownika i hasło w pamięci, ponieważ uniemożliwia osobie atakującej sprawdzenie zrzutu pamięci procesu.

interfejsU IWMCredentialCallback

interfejsu IWMReader