Asp.net mvc 4 以编程方式修改.NET 4.5中的WIF服务配置

Asp.net mvc 4 以编程方式修改.NET 4.5中的WIF服务配置,asp.net-mvc-4,ninject,wif,claims-based-identity,Asp.net Mvc 4,Ninject,Wif,Claims Based Identity,在带有Ninject的MVC4应用程序中使用WIF和.NET 4.5 情况是这样的-我有一个名为tenantaccesclaimsauthenticationmanager的自定义ClaimsAuthenticationManager子类,它执行一些声明转换。tenantaccesclaimsauthenticationmanager需要向其中注入一个IRepository对象(使用ninject) WIF的.NET 4.5 impl建议我可以将我的自定义声明身份验证管理器粘贴在web.conf

在带有Ninject的MVC4应用程序中使用WIF和.NET 4.5

情况是这样的-我有一个名为
tenantaccesclaimsauthenticationmanager
的自定义
ClaimsAuthenticationManager
子类,它执行一些声明转换。
tenantaccesclaimsauthenticationmanager
需要向其中注入一个IRepository对象(使用ninject)

WIF的.NET 4.5 impl建议我可以将我的自定义声明身份验证管理器粘贴在web.config中-但是,这种方法只能通过no-args构造函数实例化对象

我的第二种方法是在web.config中没有任何内容,但在
App_start
中,获得WIF配置的句柄,并在
RegisterServices

如何获得当前应用程序WIF配置上下文的句柄?MSDN文档没有帮助


编辑:显然,问题在于创建的
OnServiceConfiguration
事件不再可用。现在做这件事的最好方法是什么?活动仍然可用

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

更具体地说,该活动可在以下网址获得:。下面是一个示例实现:

FederatedAuthentication.FederationConfigurationCreated += (sender, e) => {
    e.FederationConfiguration.IdentityConfiguration.ClaimsAuthenticationManager = new MyCustomClaimsAuthenticationManager();
}
在上有一篇博文,提供了更多信息