我的ASP.Net HTML 5应用程序,在Session中有图像字节数组, 我正在使用CodePlex的最新5.X C#facebook SDK。
但是当用户被授权并且当时回到我的画布页面时,我无法访问我的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 :(得分:2)
试试这个:
protected void Page_Load(object sender, EventArgs e)
{
Response.AppendHeader("P3P", "CP=\"CAO PSA OUR\"");
if (!Page.IsPostBack)
{
}
}
答案 1 :(得分:0)
我最近发现需要以下隐藏字段才能正常运行。
请留意你拥有它。
<input type="hidden" name="signed_request" value="<%: Request.Params["signed_request"]%>"/>