2012-05-10 3 views
0

В нашем API мы реализовали DotNetOpenAuth (v3.4.7). Мы часто получаем исключение «Маркер в сообщении не был признан поставщиком услуг», наряду с этим трассировки стека:Могу ли я настроить истечение токена запроса DotNetOpenAuth?

at DotNetOpenAuth.Messaging.ErrorUtilities.VerifyProtocol(Boolean condition, String message, Object[] args) 
    at DotNetOpenAuth.Messaging.ErrorUtilities.ThrowProtocol(String message, Object[] args) 
    at DotNetOpenAuth.OAuth.ChannelElements.TokenHandlingBindingElement.VerifyThrowTokenTimeToLive(ITokenContainingMessage message) 
    at DotNetOpenAuth.OAuth.ChannelElements.TokenHandlingBindingElement.ProcessIncomingMessage(IProtocolMessage message) 
    at DotNetOpenAuth.Messaging.Channel.ProcessIncomingMessage(IProtocolMessage message) 

Совсем недавно я обнаружил, что это исключение, когда люди слишком долго санкционировать их просьбу маркер. Таким образом, время между шагами 1 и 2 процесса авторизации слишком велико.

Можете ли это время настроить в web.config или программно?

Примечание: Я пробовал messaging lifetime="00:30:00", но это, похоже, не влияет на то, к чему я стремлюсь.

ответ

2

Два фактора идут в возможно производить эту ошибку:

  1. IServiceProviderTokenManager.GetRequestToken бросает KeyNotFoundException ИЛИ
  2. маркер старше таймаута, указанного в dotNetOpenAuth/oauth/serviceProvider/security/@maxAuthorizationTime настройки вашего Web.config файла.

Например:

<dotNetOpenAuth> 
    <oauth> 
     <serviceProvider> 
      <security maxAuthorizationTime="00:05:00"/> 
     </serviceProvider> 
    </oauth> 
</dotNetOpenAuth> 
+0

Фактор 2 была моя проблема. Большое спасибо за ответ. Следите за хорошей работой в своей библиотеке. Надеюсь быстро обновить v4. – Jacco

+0

Я попытался помещать эту информацию в свой файл web.config, но никаких изменений в expires_in время ... она все еще показывает то же значение (в моем случае 3600). – sanjosep43

 Смежные вопросы

  • Нет связанных вопросов^_^