我将 FluentValidation 与 NancyFx 一起使用。我想针对当前上下文验证一些数据,完全针对当前用户。不幸的是,我找不到任何示例如何注册并从容器(我正在使用 StructureMap)中获取此类信息。
Docs “上下文应该在 Nancy 的大多数地方都可用,因此获取调用当前请求的用户的身份永远不会成为问题。” 但容器默认没有它。
有链接吗,路线?
我会很感激你的帮助。
我将 FluentValidation 与 NancyFx 一起使用。我想针对当前上下文验证一些数据,完全针对当前用户。不幸的是,我找不到任何示例如何注册并从容器(我正在使用 StructureMap)中获取此类信息。
Docs “上下文应该在 Nancy 的大多数地方都可用,因此获取调用当前请求的用户的身份永远不会成为问题。” 但容器默认没有它。
有链接吗,路线?
我会很感激你的帮助。
上下文是请求范围的 - 就像用户身份一样 - 并被传递到 RequestStartup 方法中,您可以在引导程序中覆盖该方法。该容器也被传递到 RequestStartup 中,因此您可以注册每个请求所需的任何内容,并在构建您注册的对象时使用上下文。
类似的东西:
为每个请求注册 ICurrentContextProvider。ICurrentContextProvider 只能具有 IUserIdentity 的一个属性,尽管我建议使用 2 个显式方法来设置和获取,这样可以防止双重初始化等。
使您的 IUserMapper(假设它的请求范围也是如此)依赖于 ICurrentContextProvider,并在映射之后设置属性。
之后,任何依赖于 ICurrentContextProvider 的代码都可以访问您设置的属性。