【问题标题】:Make current OAuth User Identity retrievable via IoC in WebAPI project在 WebAPI 项目中通过 IoC 检索当前 OAuth 用户身份
【发布时间】:2015-02-10 12:28:43
【问题描述】:

我在 ASP.NET WebAPI 2 应用程序中有一个基于 Owin 的 OAuth 2.0 实现。鉴于我对经过验证的身份设置了正确的声明,在我的控制器代码中,我通过 this.User 属性获取当前经过身份验证的用户。

我需要以这种方式设置 Ninject 内核,以便在每次请求时都会实例化 PerRequestScope 对象以容纳当前用户,但它可以以可注入方式使用,而不仅仅是来自控制器的代码。

请协助说明如何做到这一点。谢谢。

【问题讨论】:

    标签: oauth dependency-injection ninject owin identity


    【解决方案1】:

    好的,找到了。

    kernel.Bind<IPrincipal>()
      .ToMethod(context => HttpContext.Current.User)
      .InRequestScope();
    

    将允许任何注入 IPrincipal 的人获取当前用户名。

    【讨论】:

    • 这不起作用。对于 Web API,您需要使用 HttpRequestContext.Principal。但这不是静态属性,除了操作之外,您无法在任何地方访问它。
    猜你喜欢
    • 2014-12-20
    • 2019-03-29
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 2017-01-29
    相关资源
    最近更新 更多