仅 Web API v2 项目的 HttpContext.Current.User null

2024-02-21

我的目标是将 IWA(集成 Windows 身份验证)与 .NET Web API 结合使用。我想将该项目保留为 Web API 项目,而不使用 MVC。

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

  1. 第一个我选择带有 Web API 模板的 ASP.NET Web 应用程序,并使用 Windows 身份验证进行身份验证。这还包括 ASP.NET MVC。
  2. 第二个是 ASP.NET Web 应用程序空模板,其中包含 Web API 的核心参考。

第一个有效,我能够在调用时获取我的帐户 AD/Windows 身份:

 HttpContext.Current.User

当我无法获取我的 AD/Windows 身份时,我尝试了以下所有方法:

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

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


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

设置说明OWIN 与 Web API http://www.asp.net/aspnet/overview/owin-and-katana/enabling-windows-authentication-in-katana, notes:

  1. 本文来自 2013 年,此后 Microsoft.Owin.Host.SystemWeb 不再处于预发布状态,例如您不需要“-pre”从 NuGet 安装。
  2. 删除Startup.cs的Configuration方法中的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅 Web API v2 项目的 HttpContext.Current.User null 的相关文章

随机推荐