Хотите использовать StructureMap для хранения явных экземпляров на основе HttpContext / User - PullRequest
0 голосов
/ 26 апреля 2010

Мне трудно понять, как сохранить явно сгенерированный пользователем экземпляр в StructureMap, кэшированный HttpContext. Когда я пытаюсь выполнить приведенный ниже код, я даже получаю первый кэшированный экземпляр, что приводит к сбоям при использовании его для хранения учетных данных пользователя в методе Asp.Net AuthenticateRequest.

ForRequestedType<TInterface>()
                            .CacheBy(InstanceScope.HttpContext)
                                .TheDefault.
                                    Is.
                                        Object(instance));

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

Есть идеи?

1 Ответ

1 голос
/ 27 апреля 2010

Вот моя конфигурация реестра, которую я использую для приложения ASP.Net MVC

For<ICurrentUser>().HybridHttpOrThreadLocalScoped().Use<CurrentUser>();

Я настраиваю экземпляр CurrentUser после проверки статуса аутентификации пользователя. Это происходит в фильтре действий авторизации. Каждый последующий тип, нуждающийся в ICurrentUser, получает правильно настроенный экземпляр, поскольку он кэшируется в рамках веб-запроса.

...