Mam aplikację komunikującą się z serwerem korzystającym z uwierzytelniania HTTP Digest.Używanie uwierzytelniania HTTP Digest w telefonie iPhone
Wydaje mi się, że zarządzanie sesją w iPhonie jest dla nas dosyć "czarną skrzynką". Czy to prawda, że nie możemy zobaczyć, w jaki sposób framework obsługuje/utrzymuje sesje http?
Jeśli jestem tu po prostu przyćmiony, czy ktoś by chciał wyjaśnić, jak prawdopodobnie obsługiwać uwierzytelnianie HTTP Digest na iPhonie?
Mój podstawowy prowadzony przez to:
- Złóż wniosek do zabezpieczonej url
- serwer wysyła 401
- klient tworzy i utrzymuje poświadczeń i przekazuje je z powrotem do serwera
- serwer weryfikuje poświadczenia, wypełnia żądanie, jeśli jest zweryfikowane, wysyła kolejne 401, jeśli nie.
- zrobić kolejny wniosek do bezpiecznego adresu URL
- wniosków serwera autoryzacji ponownie ........
ta działa na pojedynczych wniosków, ale jeśli zrobię każde kolejne żądania, wnioski o zezwolenie na serwer jeszcze raz. Serwer utrzymywał sesję dla określonego użytkownika, ale iPhone nie wysyła żądania w tej samej sesji z jakiegoś powodu ... Dlatego serwer musi wyrzucić obiekt uwierzytelniania i utworzyć nowy za każdym razem, gdy klient wysyła żądanie do zabezpieczonego adresu URL.
Jestem pewien, że to nie jest prawidłowe zachowanie.
Jeśli przyjrzymy się, jak przeglądarka zachowuje się w tej sytuacji:
- przeglądarka żąda danych z bezpiecznym url
- serwer wysyła 401
- przeglądarka poprosi użytkownika o uwierzytelnienie, utrzymuje ją, przekazuje je do serwera
- Serwer weryfikuje dane uwierzytelniające, zwraca dane, jeśli jest zweryfikowany, wysyła kolejne 401, jeśli nie.
- Kolejne żądania dotyczące bezpiecznych adresów URL nie są monitowane o poświadczenia, ponieważ przeglądarka zarządza sesją.
Tworzę NSURLCredential i utrzymuję go w NSURLCrendtialStorage. Następnie, gdy aplikacja otrzyma polecenie "didReceiveAuthenticationChallenge", pobierze poświadczenie z pamięci i odeśle je, tworząc poświadczenie, jeśli nie istnieje (przy pierwszym żądaniu).
Każda pomoc zostanie bardzo doceniona. Dzięki.
Jasarien, Czy mogę wziąć kleszcza w ten sposób, aby postawić cię na dobrej drodze? (dla mojej ciekawości i być może korzyści kogoś innego znajdującego ten sam problem). –