2009-09-16 4 views
2

Я написал собственный поставщик роли для ASP.Net MVC. Я вызываю службу WCF, чтобы получить роли для авторизации текущего пользователя. Я использую проверку подлинности Windows.Является ли пользовательский поставщик роли в ASP.Net для каждого пользователя, использующего проверку подлинности Windows?

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

ответ

4

Он создается экземпляром один раз. Быстрый взгляд на документы подтвердили это:

Для каждого поставщика ролей, указанных в конфигурации для приложения ASP.NET конкретизирует один экземпляр ролей поставщика, который используется для всех запросов, обслуживаемых Объект HttpApplication. В результате вы можете выполнять несколько запросов одновременно. ASP.NET не обеспечивает безопасность потоков вызовов вашему провайдеру. Вам нужно будет напишите код вашего провайдера, чтобы быть потоком safe. Например, создавая подключение к базе данных или открытие файл для редактирования должен быть сделан в элементе, который называется, например, AddUsersToRoles, а не открывать в файл или подключение к базе данных, когда метод Initialize называется.

+0

Спасибо. Я добавил роли за сеанс, чтобы не вызвать службу для каждого GetRolesForUser (string userName); – 2009-09-17 04:12:01