DotNetOpenAuth和Facebook

我正在尝试使用DotNetOpenAuth进行一些网络单点登录function。

我得到的样本适用于谷歌和雅虎,但我正在与Facebook斗争。

我正在使用CTP(4.0.0.11165),并在此SO问题中遵循了示例。

但是,我在行上遇到运行时错误:

IAuthorizationState authorization = client.ProcessUserAuthorization(); 

错误是:

无法获取访问令牌。 授权服务器报告原因:(未知)

有任何想法吗?

您正在使用的构建与Facebook不兼容,因为Facebook使用旧版本的OAuth 2.0。 您必须使用较早的CTP(具有v3.5版本的CTP)才能使用Facebook。 抱歉。 当每个人都处于不完整规范的不同草案时,它很难使用OAuth 2.0。

使用https://github.com/baio/open-mvc时我遇到了类似的问题。

我通过从open-mvc repo下载的DotNetOpenAuth版本3.5.0.10357再次构建最新CTP(4.0.0.11165)的DotNetOpenAuth.ApplicationBlock项目解决了这个问题。

它适用于Facebook。

我还在为其他IDP测试它

我想你需要补充一下

 client.ClientCredentialApplicator = ClientCredentialApplicator.PostParameter("App_Secret");