Программное изменение конфигурации службы WIF в .NET 4.5

Использование WIF с .NET 4.5 в приложении MVC4 с Ninject

Вот ситуация: у меня есть пользовательский подкласс ClaimsAuthenticationManager с именем TenantAccessClaimsAuthenticationManager, который выполняет некоторые преобразования утверждений. В TenantAccessClaimsAuthenticationManager необходимо внедрить в него объект IRepository (используя ninject).

.NET 4.5, реализующий WIF, предполагает, что я могу вставить свой пользовательский диспетчер проверки подлинности утверждений в web.config, однако этот подход может создавать экземпляр объекта только через ctor без аргументов.

Второй подход, который у меня был, заключается в том, чтобы ничего не иметь в web.config, но в App_start получить дескриптор конфигурации WIF и вставить TenantAccessClaimsAuthenticationManager в RegisterServices

Как получить дескриптор текущего контекста конфигурации WIF приложения? Документы MSDN не помогают.

Изменить: Очевидно, проблема в том, что событие onServiceConfigurationCreated больше недоступно. Как лучше всего это сделать сейчас


person Raghu    schedule 14.12.2012    source источник


Ответы (1)


Событие еще доступно!

code://System.IdentityModel.Services:4.0.0.0:b77a5c561934e089/System.IdentityModel.Services.FederatedAuthentication/event:FederationConfigurationCreated:System.EventHandler

В частности, событие доступно по адресу FederatedAuthentication.FederationConfigurationCreated. Пример реализации ниже:

FederatedAuthentication.FederationConfigurationCreated += (sender, e) => {
    e.FederationConfiguration.IdentityConfiguration.ClaimsAuthenticationManager = new MyCustomClaimsAuthenticationManager();
}

В блоге есть сообщение по адресу http://dunnry.com/blog/2012/12/20/SettingClaimsAuthenticationManagerProgrammaticallyInNET45.aspx с дополнительной информацией.

person leastprivilege    schedule 20.12.2012