ASP.NET Identity 2 - 注入ISecureDataFormat<>

时间:2014-06-23 22:48:05

标签: asp.net-identity asp.net-identity-2 unity-interception

我有同样的问题描述here没有答案,只使用Unity。

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

我试过

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

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

1 个答案:

答案 0 :(得分: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的实现。