2

Это скорее вопрос дизайна.ASP.NET MVC - проверить статус входа в Facebook

Я понял, как использовать facebook login через SDK для Facebook.

ВОПРОС: Каков наилучший способ проверить, зарегистрирован ли пользователь в FB или нет, каждый раз, когда пользователь переходит на другую страницу?

Назад на веб-формы ASP.NET, я мог бы просто ввести код, чтобы проверить статус входа FB в код за главной страницей. Это было хорошо ... раз и навсегда. Но я не понимаю, как реализовать что-то подобное в Asp.Net MVC 4.0.

Учитывая, что файл _Layout.cshtml (который действует как главная страница) является только представлением (следовательно, не содержит кода), что является лучшим способом закодировать способ проверить, зарегистрирован ли пользователь в FB каждый время, когда пользователь переходит на другую веб-страницу? Поскольку я думаю, добавление этого бита кода для каждого контроллера не может быть оптимальным дизайнерским решением.

Единственное решение, о котором я могу думать, включает использование Javascript на стороне клиента для вызова WebApi ... Я предполагаю, что скрипт будет связан со всеми другими скриптами, чтобы он работал на каждой странице. Но я надеялся найти решение на стороне сервера ...

Я довольно новичок в MVC, изучая вещи, когда я иду ... советы оценили ... спасибо!

ответ

0

Я могу придумать пару моментов, которые могут помочь вам придумать решение.

  1. Вы можете код положить в вашем _layout, но я согласен, что вы хотите быть осторожным делать. Вы можете создать вспомогательный или частичный вид, и ваш _Layout вызовет его так, чтобы он выполнялся для каждого действия. Ваш помощник/частичный должен выполнить требуемую логику, а затем вернуть что-то. Проблема, с которой я сталкиваюсь в этом, - это много накладных расходов на каждый запрос.
  2. Вы можете сделать вызов AJAX после загрузки страницы (как вы предложили). Это означает, что страница по-прежнему загружается быстро. Проблема с этим заключается в том, что теперь вы зависите от Javascript. Это также потенциально немного взломано (?)
  3. Как насчет сохранения статуса пользователя (входа/выхода) в сеанс/файл cookie, а также обеспечения истечения 5 минут. Вы можете использовать метод Helper/Partial от ранее или иметь некоторый логический огонь в OnActionExecuting (или аналогичном). Ваша логика должна проверить, истек ли статус, а затем подключиться к API Facebook для обновления статуса. Это имеет преимущество низких накладных расходов (т. Е. Не проверяется снова, пока не пройдет 5 минут).

Я не знаю вашей конкретной ситуации, поэтому я не могу сказать, какой метод, если таковой имеется, является лучшим.

+0

спасибо за советы. Это требует некоторого мышления ... Я постараюсь решить этот следующий уик-энд, когда у меня появятся больше времени (это побочный проект по хобби) ... вернет обратно что-нибудь значимое ... приветствие почки! – nanonerd

+0

Все хорошие предложения @ Роуэн. Я думаю, что ответ можно найти, используя фильтр действий. Я могу создать глобальный фильтр, который применяется ко всем контроллерам/методам. Я только что прочитал chp на фильтрах в эти выходные. Надеюсь, я скоро смогу что-то понять ... отправлю обратно, как только выясню, как все разобраться. Благодаря! – nanonerd

Смежные вопросы