我對如何從asp.net標識模板執行代碼感到困惑。Asp.Net身份的Owin上下文
private ApplicationSignInManager _signInManager;
private ApplicationUserManager _userManager;
private ApplicationRoleManager _roleManager;
public AuthController() { }
public AuthController(ApplicationUserManager userManager, ApplicationSignInManager signInManager, ApplicationRoleManager roleManager)
{
UserManager = userManager;
SignInManager = signInManager;
RoleManager = roleManager;
}
public ApplicationRoleManager RoleManager
{
get { return _roleManager ?? HttpContext.GetOwinContext().Get<ApplicationRoleManager>(); }
private set { _roleManager = value; }
}
public ApplicationSignInManager SignInManager
{
get { return _signInManager ?? HttpContext.GetOwinContext().Get<ApplicationSignInManager>(); }
private set { _signInManager = value; }
}
public ApplicationUserManager UserManager
{
get { return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); }
private set { _userManager = value; }
}
爲什麼我們有帶參數的AuthController?依賴注入的目的?如果沒有發生注射,則調用在Startup.cs上指定的owincontext?這是否意味着我們可以忽略owincontext並僅使用注入?
而當我試圖調試這是如何運行,它只是通過無參數的構造函數,它打破了我的代碼。這個參數化構造函數沒有被使用嗎?
有什麼想法?謝謝。