2011-02-01 56 views
2

我有一個IFrame Facebook應用程序(asp.net/Facebook C#SDK http://facebooksdk.codeplex.com/)。 默認頁面正常工作。我用的是foolowing代碼來驗證:Facebook C#SDK - 重定向到其他頁面時的問題

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; 
} 

這個代碼是在BasePage類的OnInit是從System.Web.UI.Page派生。其他頁面源自BasePage

在第一次加載(default.aspx)時,身份驗證成功(用戶重定向到登錄頁面,然後自動重新導向回來,就像在SDK中提供的示例中一樣)。

因此,當主頁(default.aspx)最終加載時,我按頁面上的超鏈接。超鏈接將IFrame導航到也從BasePage類派生的子文件夾中的另一個aspx文件。

這裏是問題發生的地方:
當第二個(內部)aspx被加載時,它也被重定向到logn頁面,然後返回。在某些情況下(Internet Explorer/Safari),我將無限重定向登錄並返回到內頁。

我doint錯了什麼?

編輯:我在web.config中有一個無效的canvasUrl設置指向一個無效的URL,這個問題應該被視爲關閉。

回答

2

升級到最新版本的Facebook C#SDK(5.0.1)。這應該可以解決你的問題。

0

改變這在你的web.config 它可以讓你保持會話時重定向頁面

<system.web> 
<compilation debug="true" targetFramework="4.0" /> 
<pages enableViewState="true" validateRequest="false" /> 
<httpRuntime requestValidationMode="2.0"/> 
<!--<sessionState cookieless="true" regenerateExpiredSessionId="true" />--> 

相關問題