運行OpenID提供商時,我們有我們使用DotNetOpenAuth組件創建OpenID提供者。當我們在單個節點上運行提供程序時,一切都很順利,但是當我們將提供程序移動到負載均衡的集羣,其中多個服務器正在處理每個會話的請求時,由於DotNetOpenAuth組件似乎使用的是獨特的從每個集羣節點創建簽名。
異常
DotNetOpenAuth.Messaging.Bindings.InvalidSignatureException: Message signature was incorrect.
at DotNetOpenAuth.OpenId.ChannelElements.SigningBindingElement.ProcessIncomingMessage(IProtocolMessage message) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\OpenId\ChannelElements\SigningBindingElement.cs:line 139
at DotNetOpenAuth.Messaging.Channel.ProcessIncomingMessage(IProtocolMessage message) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\Messaging\Channel.cs:line 940
at DotNetOpenAuth.OpenId.ChannelElements.OpenIdChannel.ProcessIncomingMessage(IProtocolMessage message) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\OpenId\ChannelElements\OpenIdChannel.cs:line 172
at DotNetOpenAuth.Messaging.Channel.ReadFromRequest(HttpRequestInfo httpRequest) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\Messaging\Channel.cs:line 378
at DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty.GetResponse(HttpRequestInfo httpRequestInfo) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\OpenId\RelyingParty\OpenIdRelyingParty.cs:line 493
設置
我們有機器的配置設置爲使用所有羣集節點上的同一臺機器的關鍵,我們必須建立一個進程外會話與SQL Server。
問題
我們如何配置使用DotNetOpenAuth簽署的消息,因此客戶端將在同一會話期間信任來自集羣中的所有服務器的響應的關鍵?
我認爲我們有同樣的問題:http://stackoverflow.com/questions/2505565/dotnetopenauth-message-signature-was-incorrect – 2010-03-24 18:47:40
我們有一個類似的問題,而是選擇創建一個nonce商店,這非常漂亮簡單並且在我們的農場/花園設置上運行得非常好。但我們現在面臨的問題是我們自己的提供商,我們正試圖遷移到農場,而不是RP。 – Garth 2010-03-25 07:13:55