DotNetOpenAuth预期的IProtocolMessage消息 [英] DotNetOpenAuth Expected IProtocolMessage message

查看:55
本文介绍了DotNetOpenAuth预期的IProtocolMessage消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试请求身份验证令牌:

I'm trying to request an authentication token:

public static void RequestAuthorization(WebConsumer consumer)
{
    var extraParams = new Dictionary<string, string> { 
        { "oauth_token", string.Empty},
        { "oauth_callback", "http://www.ihighfive.com/" },
    };

    var req = consumer.PrepareRequestUserAuthorization(callback, extraParams, null);    
    consumer.Channel.Send(req);
}

问题是,当我运行.PrepareRequestUserAuthorization()时,出现以下错误

Problem is, when I run .PrepareRequestUserAuthorization() I get the following error


预期的IProtocolMessage消息,但未收到可识别的
消息。

Expected IProtocolMessage message but received no recognizable message.

用Fiddler检查请求/响应,我可以看到响应返回(混淆值):

Inspecting the request/response with Fiddler, I can see that the response returns(values obfusticated):

{ "oauth_token" : "this-is-the-oauth-token", 
"oauth_token_secret" : "this-is-the-oauth-secret-token", 
"oauth_callback_confirmed" : true, 
"urlToSendUserTo" : "http://blah.blah.com/api/OAuthAuthorizeToken.aspx?oauth_token=token-value-is-really-long"}

对我来说,这似乎是一个不错的选择。如果我访问urlToSendUserTo,它将起作用,然后将我传递到我的初始回调URL。因此,我想DNOA在解析响应时遇到问题,但我看不出为什么。

To me, this appears to be a good response. If I visit the urlToSendUserTo, it works, and then passes me through to my initial callback url. So I guess DNOA is having problems parsing the response, but I can't see why.

推荐答案

服务器使用的协议是什么?它不是OAuth 1.0,而是您在DotNetOpenAuth中使用OAuth 1.0类。 OAuth 1.0要求,该响应位于 application / x中-www-form-urlencoded 格式,但在您的响应摘要中,它显然是JSON。

What protocol is the server using? It's not OAuth 1.0 but you're using OAuth 1.0 classes in DotNetOpenAuth. OAuth 1.0 mandates that the response be in application/x-www-form-urlencoded format but in your snippet of the response it's clearly in JSON instead.

此外,我从未见过 urlToSendUserTo 参数在任何规范中,我不知道您为什么要发送空的 oauth_token 作为额外参数

Also, I've never seen the urlToSendUserTo parameter in any spec, and I don't know why you're sending an empty oauth_token as an extra parameter in the request.

您和/或服务器使用的语言似乎完全不同。

It seems like you and/or the server are speaking very different languages.

这篇关于DotNetOpenAuth预期的IProtocolMessage消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆