我正在尝试使用DotNetOpenAuth进行一些web单点登录功能。
我得到了谷歌和雅虎工作的样本,但我正在努力与Facebook。
我正在使用CTP(4.0.0.11165),并遵循这个SO问题中的示例。
然而,我得到一个运行时错误行:
IAuthorizationState authorization = client.ProcessUserAuthorization();
错误是:
获取访问令牌失败。授权服务器报告原因:(unknown)
任何想法?
您使用的构建与Facebook不兼容,因为Facebook使用的是较旧的OAuth 2.0规范。您必须使用较早的CTP (v3.5版本)才能与Facebook一起工作。对不起。当每个人都在使用未最终确定的规范的不同草案时,使用OAuth 2.0真是太糟糕了。
我在使用https://github.com/baio/open-mvc时遇到了类似的问题。
我通过再次构建DotNetOpenAuth解决了这个问题。最新CTP(4.0.0.11165)与DotNetOpenAuth版本3.5.0.10357的ApplicationBlock项目下载自open-mvc repo.
它在facebook上运行得很好。
我还在测试其他IDP的
我觉得你需要加上
client.ClientCredentialApplicator = ClientCredentialApplicator.PostParameter("App_Secret");