2012-05-10 24 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

2つの要因が、おそらく、このエラーを生成するに入る:

  1. IServiceProviderTokenManager.GetRequestTokenは、トークンがあなたのweb.configファイルのdotNetOpenAuth/oauth/serviceProvider/security/@maxAuthorizationTime設定で指定されたタイムアウトより古いKeyNotFoundException、OR
  2. をスローします。たとえば、

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

ファクター2は、私の問題でした。答えに感謝します。あなたの図書館で良い仕事を続けてください。すぐにv4にアップデートしたいと思っています。 – Jacco

+0

私はweb.configファイルにこの情報を入れようとしましたが、expires_inの時間は変更されませんでした...それは(私の場合3600で)同じ値を示しています。 – sanjosep43

関連する問題