2

I was trying to set a property in the constructor af a controller like this:

public ApplicationUserManager UserManager { get; private set; }
public AccountController()
    {
        UserManager = HttpContext.GetOwinContext().Get<ApplicationUserManager>("");
    }

But as explained here:

https://stackoverflow.com/a/3432733/1204249

The HttpContext is not available in the constructor.

So how can I set the property so that I can access it in every Actions of the Controller?

Community
  • 1
  • 1
amp
  • 9,710
  • 15
  • 67
  • 118

1 Answers1

4

You can move the code into a read-only property on your controller (or a base controller if you need it available across your entire application):

public class AccountController : Controller {
    private ApplicationUserManager userManager;

    public ApplicationUserManager UserManager {
        if (userManager == null) {
            //Only instantiate the object once per request
            userManager = HttpContext.GetOwinContext().Get<ApplicationUserManager>("");
        }

        return userManager;
    }
}
Justin Helgerson
  • 22,372
  • 17
  • 88
  • 121