0

私たちの API では、DotNetOpenAuth (v3.4.7) を実装しました。「メッセージ内のトークンがサービス プロバイダーによって認識されませんでした」という例外が頻繁に発生し、次のスタック トレースが表示されます。

   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"ましたが、それは私が目指しているものに影響を与えていないようです.

4

1 に答える 1

2

このエラーが発生する可能性がある要因は 2 つあります。

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

例えば:

<dotNetOpenAuth>
    <oauth>
        <serviceProvider>
            <security maxAuthorizationTime="00:05:00"/>
        </serviceProvider>
    </oauth>
</dotNetOpenAuth>
于 2012-05-11T03:39:50.133 に答える