2

我在这里描述了同样的问题,没有答案,只是使用 Unity。

我正在尝试注册ISecureDataFormat<>最新的 VS2013(更新 2)SPA/Web Api 模板。

我试过了

container.RegisterType(typeof(ISecureDataFormat<>), typeof(SecureDataFormat<>));
container.RegisterType<ISecureDataFormat<AuthenticationTicket>, SecureDataFormat<AuthenticationTicket>>();
container.RegisterType<ISecureDataFormat<AuthenticationTicket>, TicketDataFormat>();

它“有效”但不是真的,因为它抱怨该树中的下一个依赖关系,IDataSerializer ......然后是下一个 IDataProtector,我没有找到它的实现。

4

1 回答 1

10

我使用以下映射解决了 SimpleInjector 中的以下错误

container.Register<IDataSerializer<AuthenticationTicket>, TicketSerializer>();
container.Register<IDataProtector>(() => new DpapiDataProtectionProvider().Create("ASP.NET Identity"));

为了弄清楚使用了什么序列化程序,我注意到 AccountsController 中的 ISecureDataFormat 泛型参数是 AuthenticationTicket 类型。在检查 IDataSerializer 命名空间时,TicketSerializer 实现 IDataSerializer。

为了弄清楚 IDataProtector,我再次查看了 IDataProtector 命名空间并找到了 IDataProtectionProvider 的实现。

于 2014-07-15T19:35:06.877 回答