title: HttpContext.Current null in async after await calls
body: <p>HttpContext.Current null in async after await calls.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>if (!string.IsNullOrEmpty(securityGroupName))
  {
      // To remove the domain name from the security group name.
      string securityGroupDisplayName = securityGroupName.Split('\\')[1];
      string serviceSecurityGroupId = await this.graphApiClient.GetGroupIdAsync(securityGroupDisplayName).ConfigureAwait(false);
  
      if (!string.IsNullOrEmpty(serviceSecurityGroupId))
      {
          Task securityGroupRoleAddTask = this.CheckMembershipAndAddRole(serviceSecurityGroupId, userId, securityGroupName);
          Task flightAdminRoleAddTask = this.CheckMembershipAndAddRole(FlightAdminSecurityGroupId, userId, FlightAdminRoleName);
          Task.WaitAll(securityGroupRoleAddTask, flightAdminRoleAddTask);
      }
      else
      {
          LoggingUtilities.Logger.TraceInformation("Azure AD id does not exist for the security group: {0}.", securityGroupName);
          await this.CheckMembershipAndAddRole(FlightAdminSecurityGroupId, userId, FlightAdminRoleName).ConfigureAwait(false);
      }
  }
  else
  {
      LoggingUtilities.Logger.TraceInformation("Security group name is not valid, checking for flight admin role for the user: {0}.", userAlias);
      await this.CheckMembershipAndAddRole(FlightAdminSecurityGroupId, userId, FlightAdminRoleName).ConfigureAwait(false);
  }
  
  // Add the flight privileged users role to be able to verify the user is authorized for the role.
  string flightPrivilegedUsersRoleName = RoleRepository.Instance.GetByName(Constants.FlightPrivilegedUsersRoleKey).Name;
  if (!this.roles.Contains(flightPrivilegedUsersRoleName, StringComparer.OrdinalIgnoreCase))
  {
      LoggingUtilities.Logger.TraceInformation("Adding flight privileged users to roles list for the user: {0}.", userAlias);
      this.roles.Add(flightPrivilegedUsersRoleName);
  }
  
  if (userAlias != null)
  {
      LoggingUtilities.Logger.TraceInformation("Check security group memberships and assign roles for the user: {0}.", userAlias);
      var newPrincipal = new GenericPrincipal(new GenericIdentity(userAlias), this.roles.ToArray());
      Thread.CurrentPrincipal = newPrincipal;
      HttpContext.Current.User = newPrincipal;
  }
  </code></pre>
  
  <p>The recommendations about the following entries in the web.config entries did not help:</p>
  
  <pre><code>&lt;system.web&gt;
      &lt;compilation debug="false" targetFramework="4.5" /&gt;
      &lt;httpRuntime targetFramework="4.5" enableVersionHeader="false" requestPathInvalidCharacters="&amp;lt;,&amp;gt;,%,&amp;amp;,\,?" /&gt;
  &lt;/system.web&gt;
  &lt;appSettings&gt;
      &lt;add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /&gt;
  &lt;/appSettings&gt;
  </code></pre>
  
  <p>Any recommendations on how to fix this would be appreciated.</p>