2012-05-10 68 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. 令牌比你的web.config文件的dotNetOpenAuth/oauth/serviceProvider/security/@maxAuthorizationTime設置中指定的超時老。

例如:

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

因子2是我的問題。非常感謝您的回答。保持你的圖書館的好工作。希望儘快更新到v4。 – Jacco

+0

我試着把這個信息放在我的web.config文件中,但沒有更改expires_in時間...它仍然顯示相同的值(在我的情況下是3600)。 – sanjosep43

相關問題