доступ к переменной сессии ASP.Net в Facebook C # SDK - PullRequest
0 голосов
/ 18 марта 2011

У меня есть приложение ASP.Net HTML 5, в котором в сеансе есть массив байтов изображения, Я использую последнюю версию 5.X C # facebook SDK от CodePlex.

Но когда пользователь авторизован и, возвращаясь к моей странице холста, я не могу получить доступ к своему сеансу 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); 

Теперь, пожалуйста, дайте мне несколько советов, Где я пропускаю, Как я могу получить доступ к моей сессии приложения. Спасибо, Джигар Шах

Ответы [ 2 ]

2 голосов
/ 06 июля 2011

Попробуйте это:

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

    if (!Page.IsPostBack)
    {

    }
}
0 голосов
/ 21 марта 2011

Недавно я обнаружил, что для правильного функционирования требуется следующее скрытое поле.

Пожалуйста, сделайте так, чтобы оно у вас было.

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

Ссылка на мой вопрос

...