C# 访问远程用户

C# 访问远程用户,c#,httprequest,asp.net-web-api2,windows-authentication,C#,Httprequest,Asp.net Web Api2,Windows Authentication,我正在试图找到一种方法来获取我的远程用户,这样我就可以使用计算机凭据将我的用户登录到web应用程序Intranet应用程序。我无法确定如何获取此信息,因为当我在MS_HttpContext中查看我的密钥时,它似乎没有设置。这是我尝试过的代码 在我的WebApiConfiguration中,我有以下内容 public static void Register(HttpConfiguration config) { HttpClientHandler handler = new HttpCli

我正在试图找到一种方法来获取我的远程用户,这样我就可以使用计算机凭据将我的用户登录到web应用程序Intranet应用程序。我无法确定如何获取此信息,因为当我在MS_HttpContext中查看我的密钥时,它似乎没有设置。这是我尝试过的代码

在我的WebApiConfiguration中,我有以下内容

public static void Register(HttpConfiguration config) {

  HttpClientHandler handler = new HttpClientHandler() {
    UseDefaultCredentials =true
  };
  HttpClient client = new HttpClient(); 

  config.MapHttpAttributeRoutes();
  ODataConventionModelBuilder builder = new ODataConventionModelBuilder();

  builder.EntitySet<Model.User.User>("User"); 

  config.MapODataServiceRoute("Application", "api", builder.GetEdmModel()); 
  // added so api controllers can return json encoded data. 
  config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); 

}

我环顾四周,试图找到一个解决方案,我所能找到的只是上面提到的解决方案及其变体,所有这些我都尝试过,但都没有成功。如有任何提示或建议,将不胜感激。我唯一的猜测是为什么会出现这种情况是因为使用了IIS Express而不是完整的IIS。

您需要使用启用了集成身份验证的IIS才能工作,IIRC。一旦我转移到本机IIS而不是IIS Express,我就能够工作了。非常感谢。
  var p = Request.Properties; 

  var t = ((HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.ServerVariables;

  foreach (var s in t) {
    Debug.WriteLine("{0} : {1}", s, t.Get(s.ToString()).ToString());
  }