有人可以指点我一些样品或指示如何实现这个目标吗?
答案 0 :(得分:8)
这最初是通过将Identity转换为使用int作为here描述的唯一键值来实现的。
然后我扩展了它并使用IAuthenticationManager创建了一个自定义AuthenticationManager。
然后按如下方式设置StructureMap:
For<IAuthenticationManager>()
.Use<MyAuthenticationManager>(
() => new MyAuthenticationManager(HttpContext.Current.GetOwinContext().Authentication));
谢谢@trailmax
答案 1 :(得分:7)
我没有使用过StructureMap,但我使用了Autofac和SimpleInjector。
Autofac注册将如下所示:
builder.Register(c => HttpContext.Current.GetOwinContext().Authentication).As<IAuthenticationManager>();
SimpleInjector中的注册如下所示:
container.RegisterPerWebRequest(() => HttpContext.Current.GetOwinContext().Authentication);
从查看StructureMap教程我可以猜测注册会是这样的:
ForRequestedType<IAuthenticationManager>()
.TheDefaultIs(() => HttpContext.Current.GetOwinContext().Authentication)