2011-03-18 58 views
0

我有我的ASP.Net HTML 5應用程序,它具有Session中的圖像字節數組, 我使用CodePlex中最新的5.X C#facebook SDK。在Facebook C#SDK中訪問ASP.Net會話變量

但是,當用戶被授權並回到我的畫布頁時,我無法訪問我的ASP.Net會話,它給我一個空值。

這是我的代碼。

CanvasAuthorizer _authorizer = new CanvasAuthorizer { Perms = "publish_stream,offline_access,manage_pages" }; 

    if (!_authorizer.IsAuthorized()) 
    { 

     _authorizer.HttpContext.Session["ImageByte"] = Session["ImageByte"]; 
     // Go for Login, 
     _authorizer.HandleUnauthorizedRequest(); 
    } 
    else 
    { 
     //After Login 
     //Here its give me a null instead of Byte Array(My Image Byte Array). 
     byte[] imageByte = (byte[])(_authorizer.HttpContext.Session["ImageByte"]); 


     var mediaObject = new FacebookMediaObject 
     { 
      FileName = "sample.png", 
      ContentType = "image/png" 
     }; 


     mediaObject.SetValue(imageByte); 

     dynamic parameters = new ExpandoObject(); 
     parameters.source = mediaObject; 

     parameters.uid = _authorizer.Session.UserId; 


     var fb = new FacebookClient(Facebook.FacebookContext.Current.AppId, Facebook.FacebookContext.Current.AppSecret); 


     parameters.access_token = _authorizer.Session.AccessToken; 



     string path = "/me/photos"; 
     dynamic param = new ExpandoObject(); 
     param.access_token = _authorizer.Session.AccessToken; 
     param.uid = _authorizer.Session.UserId; 

     param.source = mediaObject; 
     dynamic result = fb.Post(path, param); 

現在請給我一些建議,我在哪裏失蹤,我如何訪問我的應用程序會話。 謝謝, Jigar Shah

+0

究竟是什麼空? '_authorizer.Session','_authorizer.HttpContext.Session','imageByte'還是什麼?更加詳細一些。 – 2011-03-18 12:35:44

回答

0

我最近發現下面的隱藏字段是正確運行所必需的。

請讓你擁有它。

<input type="hidden" name="signed_request" value="<%: Request.Params["signed_request"]%>"/> 

Link to my Question

2

試試這個:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.AppendHeader("P3P", "CP=\"CAO PSA OUR\""); 

    if (!Page.IsPostBack) 
    { 

    } 
}