2

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

情况是这样的——我有一个ClaimsAuthenticationManager名为的自定义子类TenantAccessClaimsAuthenticationManager,它可以进行一些声明转换。需要将TenantAccessClaimsAuthenticationManagerIRepository 对象注入其中(使用 ninject)。

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

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

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

编辑:显然问题是该onServiceConfigurationCreated事件不再可用。现在最好的方法是什么

4

1 回答 1

3

该活动仍然可用!

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上有一篇博文,其中包含更多信息。

于 2012-12-20T06:33:54.340 回答