在带有Ninject的MVC4应用程序中使用WIF和.NET 4.5
情况就是这样 - 我有一个名为ClaimsAuthenticationManager
的自定义TenantAccessClaimsAuthenticationManager
子类,可以进行一些声明转换。 TenantAccessClaimsAuthenticationManager
需要将IRepository对象注入其中(使用ninject)。
WIF的.NET 4.5 impl建议我可以在web.config中粘贴我的自定义声明身份验证管理器 - 但是,这种方法只能通过no-args ctor实例化对象。
我的第二种方法是在web.config中没有任何内容,但是在App_start
中,获取WIF配置的句柄并坚持TenantAccessClaimsAuthenticationManager
中的RegisterServices
< / p>
如何获取当前应用程序的WIF配置上下文的句柄? MSDN文档没有帮助。
修改:显然问题是onServiceConfigurationCreated
事件不再可用。现在最好的方法是什么
答案 0 :(得分:3)
活动仍然有效!
代码://System.IdentityModel.Services:4.0.0.0:b77a5c561934e089 / System.IdentityModel.Services.FederatedAuthentication /事件:FederationConfigurationCreated:System.EventHandler
更具体地说,该活动可在FederatedAuthentication.FederationConfigurationCreated获得。下面是一个示例实现:
FederatedAuthentication.FederationConfigurationCreated += (sender, e) => {
e.FederationConfiguration.IdentityConfiguration.ClaimsAuthenticationManager = new MyCustomClaimsAuthenticationManager();
}
http://dunnry.com/blog/2012/12/20/SettingClaimsAuthenticationManagerProgrammaticallyInNET45.aspx上有一篇博客文章,提供了更多信息。