2017-01-26 3 views
1

Мы пишем веб-приложение, похожее на Azure-Samples/active-directory-dotnet-webapp-webapi-openidconnectДопустимо ли использовать NaiveSessionCache из Azure-образцов Azure Active Directory OpenId Connect

Образец включает в себя NaiveSessionCache.cs, который хранит маркер доступа в состояние ASP.NET Session для UserObjectId. Код выглядит разумным, но у меня есть проблемы с именем «Наивный».

Есть ли причины, по которым я не должен использовать его в производстве? Статья

Витторио Bertocci в The New Token Cache in ADAL v2 описывает (для файлового кэша настольного приложения) и EFADALTokenCache базы данных альтернатив для реализации TokenCache. Однако я заполняю, что использование SQL DB слишком тяжело, если я могу использовать сеанс вместо этого.

Может ли кто-нибудь дать какие-либо недостатки в использовании сеанса?

ответ

3

При использовании сеанса сам по себе не используется счетчик при условии, что ваш сценарий позволяет ему (например, вам не нужен доступ, если пользователь не зарегистрирован активно), и вы его должным образом обеспечиваете. Однако класс в этих образцах предназначен только для демонстрации функциональности общего компонента кеша и не был упрочен для использования в производстве как есть: вам нужно будет добавить правильную обработку ошибок, инструментарий и все функции качества программного обеспечения вы обычно подаете заявку на собственное программное обеспечение для производства.

0

По моему опыту, использование сеанса слишком сильно зависит от веб-сервера и домена приложения. У меня были проблемы с сбросом/исчезновением сессии. Google это, и вы найдете множество людей, имеющих похожие проблемы. Мы выбрали кэш-память в памяти для небольшого односерверного веб-приложения. Для более крупного, особенно если нам нужно многосерверное приложение, я бы определенно выполнял реализацию БД.