7

I wprowadziły zabezpieczenia My Web API (indywidualnych kont), jak omówiono here.ASP.NET Web API Autoryzacja żetonów upływającym wcześnie

Byłem gospodarzem strony internetowej na temat godaddy (dzielonego hostingu) i działa dobrze. Gdy pytam o token za pomocą adresu URL "domain.com/token", otrzymuję token z datą wygaśnięcia w ciągu 15 dni. Mam ustawiony ten w „StartupAuth.cs” Korzystanie

AccessTokenExpireTimeSpan = TimeSpan.FromDays(15) 

np

{ 
    "access_token":"qwertyuiop.....", 
    "token_type":"bearer", 
    "expires_in":1209599, 
    "userName":"[email protected]", 
    ".issued":"Wed, 11 Feb 2015 01:00:00 GMT", 
    ".expires":"Thu, 26 Feb 2015 01:00:00 GMT" 
} 

(kładę wartości w powyższym kodzie, ale masz pomysł „.expires” pola

.

5 minut po otrzymaniu tokena, gdy próbuję i dostęp do „get” lub „post” lub jakąkolwiek metodę w moim API zezwolenia przechodzącej przez: okaziciela żeton w nagłówku jako:

Authorization: Bearer qwertyuiop..... 

otrzymuję ten błąd:

{"Message":"Authorization has been denied for this request."} 

chociaż jego właśnie 5 minut i żeton ma trwać 15 dni, to wygasa w ciągu 5 minut. Kiedy zażądam jakiejkolwiek metody "get"/"post" w ciągu 5 minut, otrzymuję prawidłową odpowiedź z moimi danymi w JSON. Krótko mówiąc, autoryzacja się powiedzie.

I powtórzył ten problem, sprawdzając je za pomocą Skrzypek, odpoczynek wtyczki Chrome oraz za pośrednictwem aplikacji mobilnej, która korzysta z interfejsu API.

mam wartości web.config dla sesji jak poniżej (myślałem jej pokrewne)

<sessionState timeout="180" /> 

uwaga, która stanowi uwierzytelniania nie jest używany, więc czas oczekiwania na tej sekcji w pliku web.config nie jest to konieczne.

Każdy pomysł, co się dzieje? Ten limit czasu powoduje, że użytkownicy aplikacji mobilnych, którzy korzystają z interfejsu API, ponownie logują się od czasu do czasu. Każda pomoc będzie doceniona.

Dzięki.

+0

Mam dokładnie ten sam problem !! Czy ktoś może pomóc? –

+0

Dodanie klucza maszynowego rozwiązało problem. why_not również wspomniał o tym poniżej. Jak oznaczyć wpis why_not jako odpowiedź? –

Odpowiedz

4

Sprawdź serwer, w IIS klucz Maszyna może być ustawiona na poziomie aplikacji, za każdym razem, gdy pula aplikacja przetwarza nowy klucz Maszyna jest generowany stąd potrzebny jest nowy token. Możesz ustawić klucz Machine na poziomie witryny lub poziomie serwera root. Może to może pomóc

5

Dodaj do web.config nie zostać dotknięte aplikacji recyklingu

<system.web> 
    <machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" 
      decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77" 
      validation="SHA1"/> 

Czytaj tutaj jak generować basenie https://support.microsoft.com/en-us/kb/312906

-1

Spróbuj ustawić czas bezczynności out (minuty) do ponad 5 minut (znalezione w puli aplikacji iis - ustawienia zaawansowane).