2009-12-16 4 views
0

Я разрабатываю приложение ASP.NET MVC с пользовательскими поставщиками членства и роли.ASP.NET MVC и кеширование роли?

Мой пользовательский поставщик роли использует LinqToEntities для запроса таблицы сопоставления пользователя/роли и получения, если пользователь находится в роли или нет.

При работе на отладочной машине на локальном компьютере все в порядке. При развертывании на IIS7, однако, у меня такое странное поведение:

Когда я меняю роли для пользователя, а затем вхожу в систему с этим пользователем, он сохраняет старые роли, а не новые. Это похоже на то, что они кэшированы где-то, но я уже установил опцию cacheRolesInCookie="false" в Web.config

Чтение в Интернете я видел, что упомянутая опция - это просто директива для провайдера, то есть, если я не реализую его использование, оно будет проигнорировано, так ли это?

Это оставляет меня озадаченным. Мой провайдер должен выполнять новый запрос каждый раз, когда вызывается метод. Он работает локально, но не на машине развертывания с IIS7.

Кто-нибудь знает, есть ли скрытая настройка в IIS7, чтобы все работало правильно?

Спасибо.

ответ

2

После долгого времени я нашел решение.

Проблема заключалась в контексте EF, который использовался для чтения пользователей/ролей.

Я исправил его, переставляя контекст каждый раз, когда проверяется роль, вместо того, чтобы поддерживать тот же контекст, пока приложение не перезапустится.

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