Когда провайдеры ролей asp.net живут и умирают? - PullRequest
4 голосов
/ 02 января 2009

Я работаю с провайдером пользовательских ролей в asp.net, и кажется, что после загрузки провайдера в память он не выпадает из памяти до перезапуска веб-приложения (например, когда файл web.config изменил и сохранил). Кроме того, кажется, что все запросы к этому веб-приложению используют один экземпляр поставщика ролей.

Итак, мой вопрос: когда asp.net создает экземпляры поставщиков ролей? И какова их продолжительность жизни? Когда asp.net создает новые экземпляры? И есть ли способ заставить asp.net обновить текущий экземпляр провайдера, удалив старый экземпляр и создав новый?

1 Ответ

2 голосов
/ 03 января 2009

Дизайн ASP.NET предполагает, что провайдеры являются объектами без сохранения состояния. Поэтому вам следует разработать провайдера таким образом, чтобы вам не нужно было знать, когда он создается и когда он умирает. По сути, если вы действительно хотите это сделать, вы можете поместить фактическую логику в другой класс, который будет обрабатываться при создании и удалении класса прокси, который вы представите в ASP.NET.

Кроме того, ASP.NET не гарантирует, когда будет создан объект поставщика роли. Это что-то вроде статических конструкторов. Вы должны полагаться только на то, что они существуют, когда они необходимы.

...