У меня есть этот веб-проект ASP ASP для веб-приложений, который использует аутентификацию BEARER TOKEN.ASP.NET SPA WEBAPI BEARER TOKEN не запомнился на winhost
Я развернул его в пару разных мест, локально и лазурное облако, и я НЕ вижу эту проблему.
Из-за бюджетных причин я решил купить у хостинговой компании (winhost). Когда сайт работает с этого хоста, я вижу только следующую проблему.
Проблема заключается в том, что после того, как вы зашли на сайт и простоя в течение X минут, следующий запрос провалится, пока вы не обновите и не войдете в систему. (Я получаю 401 (неавторизованный))
Срок действия токена, по-видимому, составляет 10-20 минут вместо 2 недель (который по умолчанию работает на лазурном экране и на моей визуальной студии). Я также распечатал токен, когда получил его, и это 2 недели.
Поведение, которое я ожидаю, это токен-носитель, который должен быть кэширован (который я подтвердил путем регистрации заголовка), затем отправляется со следующим запросом, который затем разрешен и возвращает результаты.
Этот новый хост имеет некоторые настройки IIS по умолчанию, которые, я думаю, нарушают его. Мне уже пришлось изменить несколько настроек по умолчанию, например, вручную отключить базовый auth через диспетчер IIS.
Любые идеи?
Единственная вещь, которую я мог найти, соответствует описанию того, что я вижу, - это эта ссылка. ASP.NET Web API Authorization tokens expiring early
Я бы прокомментировал это сообщение, но у меня недостаточно высоких точек репутации. Из удобства я скопировал этот пост ниже.
У меня есть безопасность для моего веб-ави (индивидуальные счета), как обсуждалось here.
У меня есть сайт на godaddy (общий хостинг) и его рабочий штраф. Когда я запрашиваю токен, используя url «domain.com/token», я получаю токен с датой истечения в течение 15 дней. Я поставил это в "StartupAuth.cs" с помощью
AccessTokenExpireTimeSpan = TimeSpan.FromDays(15)
например:
{
"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"
}
(я кладу значения в коде выше, но вы получите представление о поле ".expires"
.5 минут после получения токена, когда я пытаюсь и доступ к «получить» или «пост» или какой-либо метод в моем API пропускаемой авторизации: однонаправленного маркер в заголовке как:
Authorization: Bearer qwertyuiop.....
Я получаю эту ошибку:
{"Message":"Authorization has been denied for this request."}
Хотя его только что 5 минут и маркер должен длиться 15 дней, он истекает в течение 5 минут. Когда я запрашиваю какой-либо метод «get»/«post» в течение 5 минут, я получаю правильный ответ с моими данными в JSON. Короче говоря, авторизация удалась.
Я повторил это поведение, проверив его через Fiddler, плагин REST для Chrome и через мобильное приложение, которое использует API.
У меня есть значения web.config для сессии, как показано ниже (я думал, связанный с ним)
<sessionState timeout="180" />
Обратите внимание, что формирует проверки подлинности не используется, поэтому время ожидания на этом участке в web.config не надо.
Любая идея, что происходит? Этот тайм-аут заставляет пользователей мобильных приложений, которые используют API для повторного входа в систему, время от времени. Любая помощь будет оценена по достоинству.
Спасибо.