DotNetOpenAuth - 消息签名不正确

时间:2011-05-22 22:34:10

标签: c# asp.net asp.net-mvc dotnetopenauth

already a StackOverflow post that has addressed this issue。但是,它无法帮助我。

所以,我使用DotNetOpenAuth编写了一个OpenID登录实现,并且我继续收到“消息签名不正确”。

有趣的是,这是通过我家里的电脑发生的。在我的工作中,我得到此错误,并且工作正常。

我尝试添加web.config

<trust level="Full" />
<httpRuntime maxQueryStringLength="20000" />

另外,我在实例化OpenIdRelyingParty

时添加了null参数

new OpenIdRelyingParty(null)

最后,我在路由器和PC上打开了443端口。

关键因素是,这不是我家里的电脑。但是,它正在我工作的PC上工作。两者都有完全相同的代码。

2 个答案:

答案 0 :(得分:3)

当您向OAuth提供商发出请求时,框架会生成签名。此签名是不同值的哈希值,包括您请求的URL。然后,提供者执行相同操作并执行比较。如果提供程序构建的哈希与您通过oauth_signature查询字符串参数提供的哈希值不同,则该请求将被视为无效,并且您会收到此错误。

当我的客户端应用程序正在签署一个与api.foo.com/oauth类似的URL时,我遇到了类似的问题。服务器有一个URL重写器,在提供者有机会处理任何内容之前,将URL重写为foo.com/api/oauth 。由于客户端URL和提供程序处理的URL不同,因此会导致不同的签名,从而导致错误。

答案 1 :(得分:0)

检查您的计算机时钟。时间应该是正确的以及时区

如果这对您没有帮助,请activate logging,看看它是否为您提供了有关签名错误原因的更多详细信息。