title: No IPrincipal user information in controller
body: <p>I have a basic Web API service with a controller that inherits from ApiController. I have read that I should be able to utilise ApiController.User to get the current authenticated users IPrincipal user object. However when I try the following in my constructor, User is empty with no Principal details.</p>
  
  <pre><code>[InjectionConstructor]
          public CloudConfigValueController(IDataModelConverter dataModelConverter, IBusinessModelConverter businessModelConverter, ILogger logger)
          {
              var u = User;
              _businessModelConverter = businessModelConverter;
              _dataModelConverter = dataModelConverter;
              _logger = logger;
          }
  </code></pre>
  
  <p>my web.config</p>
  
  <pre><code> &lt;system.web&gt;
      &lt;authentication mode="Windows" /&gt;
      &lt;identity impersonate="true"/&gt;
  </code></pre>
  
  <p>So why am I getting no identity information in my controller?</p>
  
  <p>Note: out of interest I also tried using an attribute to validate entry to the API Controller, and I found if I dig down deep through many layers of objects, I can find a textual representation of my windows user name - but no IPrincipal. identity.Name below contains the username</p>
  
  <pre><code> public override void OnAuthorization(HttpActionContext actionContext)
          {
  
              var wrapper = actionContext.ControllerContext.Request.Properties["MS_HttpContext"] as HttpContextWrapper;
              if (wrapper == null)
              {
                  Log.InfoFormat("Could not get http context.");
                  throw new AuthenticationException("Could not get authorization context");
              }
  
              var identity = wrapper.Request.LogonUserIdentity;
              if (identity == null)
              {
                  Log.InfoFormat("Could not disover identity");
                  throw new AuthenticationException("Could not get users identity");
              }
          }
  </code></pre>