Authentication 如何在NancyFx中注册并从容器中获取IUserIdentity?
我对NancyFx使用FluentValidation。我想根据当前上下文验证一些数据,完全针对当前用户。不幸的是,我找不到任何关于如何注册和从容器(我使用的是StructureMap)获取此类信息的示例 Docs“上下文应该在Nancy的大多数地方都可用,因此获取调用当前请求的用户的身份不应该是一个问题。”但是容器在默认情况下没有它 有链接、方向吗Authentication 如何在NancyFx中注册并从容器中获取IUserIdentity?,authentication,ioc-container,nancy,structuremap3,Authentication,Ioc Container,Nancy,Structuremap3,我对NancyFx使用FluentValidation。我想根据当前上下文验证一些数据,完全针对当前用户。不幸的是,我找不到任何关于如何注册和从容器(我使用的是StructureMap)获取此类信息的示例 Docs“上下文应该在Nancy的大多数地方都可用,因此获取调用当前请求的用户的身份不应该是一个问题。”但是容器在默认情况下没有它 有链接、方向吗 我将非常感谢您的帮助。上下文与用户标识一样是请求范围,并被传递到RequestStartup方法中,您可以在引导程序中覆盖该方法。容器还被传递到R
我将非常感谢您的帮助。上下文与用户标识一样是请求范围,并被传递到RequestStartup方法中,您可以在引导程序中覆盖该方法。容器还被传递到RequestStartup中,因此您可以注册每个请求所需的任何内容,并在构建您注册的对象时使用上下文。大致如下: 为每个请求注册ICurrentContextProvider。iccurrentcontextprovider只能有一个IUserIdentity属性,不过我建议为set和get使用两个显式方法,这样可以防止双重初始化,等等 使您的IUserMapper(假设其请求范围也已确定)依赖于ICurrentContextProvider,并在映射后设置属性
在此之后,任何依赖ICurrentContextProvider的代码都可以访问您设置的属性。没错。我找到了。但是没有任何关于身份的信息。Context.CurrentUser为null,因为稍后创建/映射。:(问题是:容器中注册的IContainer是否也根据请求确定了作用域(是否为子容器)?如果是,我可以在进行身份映射时(在IUserMapper中)将其拉入并注册我的身份服务。我认为IContainer是请求范围。请尝试:)@Jon我正在使用表单。将上下文传递到身份服务中如何?身份最终将根据上下文设置,对吗?可能在服务需要它之前,对吗?