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>(). I hope so you can fix the problem