我目前正在使用 facebook connect 测试 OAuth 实现http://facebooksdk.codeplex.com.
我有一个 FacebookController,有 2 个简单的操作,称为LogOn and 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 value.
就像重定向考虑到了#_=_
通过将字符自动添加到loggedUrl 中来实现。
即使当我尝试使用return Redirect("/");
, the #_=_
从(几乎)无处添加到我的重定向网址...
任何想法都会非常感激。
预先感谢您的任何答复。
Regards,
LB