Session ValidateSession(JsonObject data)
{
if (!data.IsDictionary)
throw new ArgumentException("Should be a dictionary", "data");
Session session = null;
if (data.IsDictionary
&& data.Dictionary.ContainsKey("uid")
&& data.Dictionary.ContainsKey("access_token")
&& data.Dictionary.ContainsKey("sig"))
{
string expectedSignature = GenerateSignature(data);
if (expectedSignature != data.Dictionary["sig"].String)
throw new FacebookApiException("Canvas", "Unexpected signature");
return Session.FromJsonObject(data);
}
return session;
}