我正在使用LinkedIn Owin Middleare并且今天早上开始遇到问题,现在又将其复制到以下错误:
POST https://www.linkedin.com/uas/oauth2/accessToken HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.linkedin.com
Cookie: bscookie="v=1&201504071234373bc02b47-9d08-477f-8375-b80b281ef416AQEptFjv8jXPI93YmF-H-3kvnwSLwBF8"; bcookie="v=2&46f6f299-6702-48bf-8634-7ba023bd5099"; lidc="b=LB23:g=218:u=215:i=1428412320:t=1428487523:s=AQEQQq6vlEKPT3LW8c0cPEzRTKp-ToxL"
Content-Length: 267
Expect: 100-continue
Connection: Keep-Alive
grant_type=authorization_code&code=AQQRSgEH8vczSFJKNxtMpunzjYN6YJxoF2hiX_d9RVkqBvMC7TzRpur0p9NJFdQOUNf8RmFyj_cCg3ENTucRw5e-gQfEZ5sPGoujiFRsQ8Tb0pLnaog&redirect_uri=http%3A%2F%2Flocalhost%3A1729%2Fsignin-linkedin&client_id=&client_secret=
未找到方法的结果。
HTTP/1.1 405 Method Not Allowed
Date: Tue, 07 Apr 2015 13:13:16 GMT
Content-Type: text/html
Content-Language: en
Content-Length: 5487
X-Li-Fabric: PROD-ELA4
Strict-Transport-Security: max-age=0
Set-Cookie: lidc="b=LB23:g=218:u=215:i=1428412396:t=1428487523:s=AQExeP2uX-7KXQv79NIZmW0LB09uE4eJ"; Expires=Wed, 08 Apr 2015 10:05:23 GMT; domain=.linkedin.com; Path=/
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache, no-store
Connection: keep-alive
X-Li-Pop: PROD-IDB2
X-LI-UUID: 0FM/jIG90hPAzyhAqCsAAA==
正在寻找任何人确认在导致此错误的LUN上发生了更改,并且该更改并非特定于应用程序。
请注意,我删除了clientid / secrets以上的内容。
答案 0 :(得分:2)
我早上大部分时间都在休息,并试图让它发挥作用。令人沮丧的是,它使用Advanced Rest Client chrome工具正常工作。这个和fiddler的组合显示标题中唯一的区别是标题中的Expect: 100-continue
标志。我能够将其设置为false的唯一方法是在web.config部分
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
希望这有帮助。
答案 1 :(得分:0)
我今天早上也遇到了这个问题(我使用的是DotNetOpenAuth)。看起来这与使用以下请求标头有关:Expect: 100-continue
删除此请求标头后,不再出现HTTP/1.1 405 Method Not Allowed
响应。显然,如果您无法访问源代码,这没有多大帮助!
我假设这是由于LinkedIn的变化,因为我今天早上才开始遇到问题。我猜测他们需要为此修复此问题。
答案 2 :(得分:0)
我今天开始遇到这个问题。经过一些关于Expect的研究:100-继续我发现了 System.Net.ServicePointManager.Expect100Continue = false;
在Global.asax内部的Application_Start()函数中,从请求中取出100-continue,我在LinkedIn上的登录现在再次运行。
不是永久性修复,因为我想现在为什么它首先破坏了。
答案 3 :(得分:0)
对于那些使用Owin Middleware和Owin.Security.Providers
的人使用修复程序创建了预发布的nuget。 https://www.nuget.org/packages/Owin.Security.Providers/1.17.0-pre
这适用于现在。但是,在我们知道什么是更改或者声明他们更改了什么之前,人们可以将其用作修补程序。
可以在以下位置找到有关修复的更多背景信息: https://github.com/RockstarLabs/OwinOAuthProviders/issues/87#issuecomment-90838017
但根本原因是LinkedIn改变了一些accessToken端点,导致大多数libs使用linkedin SSO必须应用修补程序,但我们还没有听到任何来自linkedin。
答案 4 :(得分:0)
我有同样的问题也使用DotNetOpenAuth。
我如何解决:
"Expect: 100-continue"
redirect_uri
已编码,我删除了redirect_uri
的编码(对于https://www.linkedin.com/uas/oauth2/accessToken的请求)答案 5 :(得分:0)
找到了卷曲的解决方案,非常简单:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:') );