How to fix Can't find Request.GetOwinContext in Web API

If you get an error can't get the UserManager from OwinContext in ApiController using ASP.NET MVC

You can fix the problem as below.

using System.Web;
using System.Web.Http;
using Microsoft.AspNet.Identity.Owin;
using System.Linq;
using System;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;

namespace Invoice.Controllers
{
    public class AccountController : ApiController
    {
        private ApplicationSignInManager _signInManager;
        private ApplicationUserManager _userManager;

        public AccountController(ApplicationUserManager userManager, ApplicationSignInManager signInManager)
        {
            UserManager = userManager;
            SignInManager = signInManager;
        }

        public ApplicationSignInManager SignInManager
        {
            get
            {
                return _signInManager ?? HttpContext.Current.GetOwinContext().Get<ApplicationSignInManager>();
            }
            private set
            {
                _signInManager = value;
            }
        }

        public ApplicationUserManager UserManager
        {
            get
            {
                return _userManager ?? HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
            }
            private set
            {
                _userManager = value;
            }
        }        
    }
}

You should install Microsoft.AspNet.Identity.Owin from the Nuget Package Manager into your project, then just add the following code to the top.

using Microsoft.AspNet.Identity.Owin;
using Microsoft.AspNet.Identity;

Remember replace HttpContext.GetOwinContext().Get<ApplicationSignInManager>() to HttpContext.Current.GetOwinContext().Get<ApplicationSignInManager>()