HttpContext.Current.User null,仅限Web API v2项目

时间:2015-06-26 17:26:48

标签: asp.net .net asp.net-mvc asp.net-web-api

我的目标是将IWA(集成Windows身份验证)与.NET Web API结合使用。我想将项目保持为一个没有MVC的Web API项目。

我在Visual Studio 2013 Premium中创建了两个项目:

  1. 第一个我选择带有Web API模板的ASP.NET Web应用程序,其中包含身份验证到Windows身份验证。这还包括ASP.NET MVC。
  2. 第二个是ASP.NET Web Application Empty模板,其中包含Web API的核心参考。
  3. 第一个工作,我在调用时能够获得我的帐户AD / Windows身份:

     HttpContext.Current.User
    

    第二个我无法获得我的AD / Windows身份,我尝试了以下所有方法:

     - HttpContext.Current.User
     - User
     - RequestContext.Principal
    

    我需要从Web API(第二个项目)调用什么来填充用户?

1 个答案:

答案 0 :(得分:2)

Web API v2使用OWIN(Katana),通过IIS启用IWA,您需要导入Microsoft.Owin.Host.SystemWeb库。这使用IIS和ASP.NET管道,填充用户。

设置OWIN with Web API的说明,注意:

  1. 本文来自2013年,从那时起,Microsoft.Owin.Host.SystemWeb不再处于预发布阶段,例如你不需要" -pre"从NuGet安装。
  2. 删除Startup.cs的Configuration方法内的内容。