如何在NancyFx中注册并从容器中获取IUserIdentity?

时间:2015-03-11 15:34:02

标签: authentication ioc-container nancy structuremap3

我在NancyFx上使用FluentValidation。我想针对当前用户验证针对当前上下文的一些数据。不幸的是,我无法找到如何注册和从容器(我使用StructureMap)返回这样的信息的任何示例。

Docs" Nancy的大多数地方都应该提供上下文,因此获取调用当前请求的用户的身份永远不会成为问题。"但是容器没有默认设置。

任何链接,方向?

我很感激你的帮助。

2 个答案:

答案 0 :(得分:2)

上下文是请求作用域 - 用户身份也是如此 - 并传递给您可以在引导程序中覆盖的RequestStartup方法。容器也被传递到RequestStartup中,因此您可以根据请求注册所需的任何内容,并在构建您注册的对象时使用上下文。

答案 1 :(得分:0)

有些事情:

按请求注册ICurrentContextProvider。 ICurrentContextProvider只能有一个IUserIdentity属性,虽然我建议使用2个显式方法进行set和get,这样就可以防止双重初始化等。

使您的IUserMapper(假设其请求范围也是如此)依赖于ICurrentContextProvider,并在映射之后设置属性。

之后,依赖于ICurrentContextProvider的任何代码都可以访问您设置的属性。