我在Web API 2项目中使用ASP.NET Identity 2.2,但我不确定如何使用 Autofac 连接ISecureDataFormat<AuthenticationTicket>
的{{1}}依赖关系。
我试过了:
AccountController
并收到错误:
类型&#39; Microsoft.Owin.Security.ISecureDataFormat`1 [Microsoft.Owin.Security.Authenticat ionTicket]&#39;不能分配给服务&#39; Microsoft.Owin.Security.DataHandler.TicketDataFormat&#39;
我遇到的所有问题似乎都无法使用最新的ASP.NET身份稳定版本。
非常感谢任何帮助。
答案 0 :(得分:6)
你必须做对面。使用 Autofac ,您可以将类型注册为服务。
builder.RegisterType<TicketDataFormat>()
.As<ISecureDataFormat<AuthenticationTicket>>();
并且基于this answer,您似乎还需要注册IDataSerializer<AuthenticationTicket>
和IDataProtector
实施。
builder.RegisterType<TicketSerializer>()
.As<IDataSerializer<AuthenticationTicket>>();
builder.Register(c => new DpapiDataProtectionProvider().Create("ASP.NET Identity"))
.As<IDataProtector>();