Decodificar solicitud firmada sin autenticación

¿Podemos usar el C # SDK de Facebook para decodificar el parámetro signed_request que se pasa a la página de la pestaña de Facebook, sin usar la autenticación ? Básicamente, estoy buscando una manera de decodificar y analizar el objeto JSON de página que contiene signed_request.

Estoy buscando el equivalente a .NET C # para lograr el mismo tipo de deencoding en este ejemplo de PHP: Una forma perfecta de verificar si la página de “me gusta” del usuario

Solo estoy pegando la misma respuesta que he respondido en otra publicación.

Contenido solo para fans en facebook con asp.net C # sdk

Obtienes una solicitud firmada cuando tu página web está cargada en la aplicación de canvas de Facebook; Debería poder analizar la solicitud firmada algo similar a lo siguiente:

if (Request.Params["signed_request"] != null) { string payload = Request.Params["signed_request"].Split('.')[1]; var encoding = new UTF8Encoding(); var decodedJson = payload.Replace("=", string.Empty).Replace('-', '+').Replace('_', '/'); var base64JsonArray = Convert.FromBase64String(decodedJson.PadRight(decodedJson.Length + (4 - decodedJson.Length % 4) % 4, '=')); var json = encoding.GetString(base64JsonArray); var o = JObject.Parse(json); var lPid = Convert.ToString(o.SelectToken("page.id")).Replace("\"", ""); var lLiked = Convert.ToString(o.SelectToken("page.liked")).Replace("\"", ""); var lUserId= Convert.ToString(o.SelectToken("user_id")).Replace("\"", ""); } 

Debe agregar una referencia a las bibliotecas json para analizar la solicitud firmada en C #, descargar desde http://json.codeplex.com/

Consulte también Cómo descodificar OAuth 2.0 para Canvas signed_request en C #? Si estás cansado de la solicitud firmada.

¿Qué quiere decir ‘sin autenticación’? La solicitud firmada se firma con el secreto de su aplicación, por lo que puede decodificarla independientemente de si el usuario actual ha autorizado su aplicación.

{edit} Ahora me doy cuenta de que te estás refiriendo a una biblioteca llamada Authentication {/ edit}

Si encuentra otra biblioteca o reimplementa el algoritmo para HMAC SHA-256 y un decodificador base64url, estoy seguro de que podría hacerlo sin usar esa biblioteca específica, pero probablemente sea más fácil simplemente usarla