У меня есть следующий код, чтобы проверить, понравилась ли моя вкладка пользователю:
protected bool IsPageLiked()
{
try
{
var current = ConfigurationManager.GetSection("facebookSettings")
as IFacebookApplication;
dynamic data = FacebookWebContext.Current.SignedRequest.Data;
if (data.page != null)
{
var pageId = (String)data.page.id;
var isUserAdmin = (Boolean)data.page.admin;
var userLikesPage = (Boolean)data.page.liked;
if (userLikesPage)
return true;
}
}
catch (Exception ex)
{
return false;
}
return false;
}
Это работает правильно, когда я загружаю свою вкладку изначально.
Однако, если я пытаюсь вызвать тот же код после изменения страницы на вкладке, я получаю следующую ошибку:
{"Предварительное условие не выполнено:! String.IsNullOrEmpty (signatureRequestValue)"}
Есть ли способ заставить этот код работать после первой страницы?
Я знаю, что могу проверить, нравится ли вкладка на первой странице, и поместить это в объект сеанса или что-то в этом роде, но я бы предпочел не делать этого.
Мое приложение само по себе MVC 3
Спасибо
EDIT
Я думаю, что происходит, когда я меняю страницу (я использую метод RedirectToAction), он теряет строку запроса signature_request, поэтому я получаю ошибку.
Редактировать 2
Не уверен, что выше все-таки происходит, так как я не вижу значений строки запроса на начальной странице? Он все еще не может получить подписанный запрос.
Похоже, что sign_request является объектом формы (Request.Form ["signature_request"] возвращает строку на начальной странице, но не на второй странице).