我目前正在使用
http://facebooksdk.codeplex.com测试facebook connect的OAuth实现.
我有一个带有2个简单操作的FacebookController,名为LogOn和CallBack.
一切正常,用户正确登录到我的系统.
问题是当调用CallBack动作时,会发生一些奇怪的事情
return Redirect(loggedUrl);
重定向到正确记录的URL但以以下字符结尾:#_ = _
似乎Facebook服务器使用以下HTTP标头将信息发送到我的网络服务器:
HTTP/1.1 302 Found Cache-Control: private,no-cache,no-store,must-revalidate Expires: Sat,01 Jan 2000 00:00:00 GMT Location: http://mywebsite.com/Facebook/CallBack/?state=1&code=AQCXexr10uxANSBOu9JqrBDxqPkWbsyxM1S9ltuY9XwCXW7eGsOII329SthClxOSM_a7wJvwrXh1_O3D5I7E_nxCDTWDLpyYdMpMUfw4zMWcQ4oV2PmRkIMd2NfPYRKlkLgkurEzka1CjAF1jp8Xb3crklOB59W4IT7LZy6MEmFusuhSKacmsTcV1LAOW4uJ3K4#_=_ P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p" Pragma: no-cache Set-Cookie: locale=en_US; expires=Fri,28-Oct-2011 00:09:38 GMT; path=/; domain=.facebook.com Content-Type: text/html; charset=utf-8 X-FB-Server: 10.43.103.61 X-Cnection: close Date: Fri,21 Oct 2011 00:09:38 GMT Content-Length: 0
如您所见,我们可以在Location值的末尾找到#_ = _字符.
这就像Redirect通过将它们自动添加到loggedUrl来考虑#_ = _字符.
即使我尝试使用返回重定向(“/”);,#_ = _也会从(几乎)无处添加到我的重定向网址…
任何想法都会非常感激.
提前感谢您的回答.
问候,
磅
解决方法
Facebook最近通过在响应结束时添加#=字符来修改其身份验证机制.字符串末尾的#符号实际上是在创建问题.因此,您可以截断查询并执行重定向,这将正常工作.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。