我有一个 IFrame Facebook 应用程序 (asp.net/Facebook C# SDK http://facebooksdk.codeplex.com/)。 默认页面工作正常。我使用傻瓜代码进行身份验证:
IFacebookSettings FbSettings = FacebookSettings.Current;
FacebookApp Fb = new FacebookApp(FbSettings);
CanvasAuthorizer FbAuthorizer = new CanvasAuthorizer(Fb);
if (!FbAuthorizer.IsAuthorized())
{
Response.Redirect("~/Login.aspx?returnUrl=" + HttpUtility.UrlEncode(Request.Url.PathAndQuery));
Response.End();
}
else
{
CurrentUser = new FacebookUser((JsonObject)Fb.Api("/me"));
CurrentUser.AccessToken = Fb.AccessToken;
}
此代码位于派生自 System.Web.UI.Page 的 BasePage 类 OnInit 中。其他页面派生自BasePage
首次加载 (default.aspx) 时,身份验证成功(用户被重定向到登录页面,然后自动重定向回来,就像 SDK 中提供的示例一样)。
因此,当主页 (default.aspx) 最终加载时,我按下页面上的超链接。超链接将 IFrame 导航到子文件夹中的另一个 aspx 文件,该子文件夹也派生自 BasePage 类。
这里是问题发生的地方:
当加载第二个(内部)aspx 时,它也被重定向到登录页面,然后返回。在某些情况下(Internet Explorer/Safari),我会收到无限重定向以登录并返回内页。
我哪里做错了?
编辑:我在 web.config 中有一个无效的 canvasUrl
设置指向一个无效的 URL,这个问题应该被视为关闭。
最佳答案
升级到最新版本的 Facebook C# SDK (5.0.1)。这应该可以解决您的问题。
关于c# - Facebook C# SDK - 重定向到另一个页面时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4866727/