は、.NET Frameworkと個々のアカウントを使用してASP.NET Webアプリケーション用のVisual Studioで作成したサンプルアプリケーションには依存性の注入ツールはありません。
このコンストラクタは、DIフレームワークをプラグインできるように作成されています。キーは、これらの依存関係を取得するためにAccountController
で宣言されたプロパティにあります。例えば、SignInManager
プロパティを参照してください:あなたは空のコンストラクタを通じてAccountController
のインスタンスを作成した場合
public ApplicationSignInManager SignInManager
{
get
{
return _signInManager ??
HttpContext.GetOwinContext().Get<ApplicationSignInManager>();
}
private set
{
_signInManager = value;
}
}
、このコードは_signInManager
が設定され、代わりに現在のOWINコンテキストから取得されていないことがわかります。ただし、DIコンストラクタを使用していた場合は、_signInManager
に値があり、代わりに使用されます。
ApplicationSignInManager
クラスへのすべてのアクセスは、SignInManager
プロパティのAccountController
でどのように行われるかに注意してください。例:
var result = await SignInManager.PasswordSignInAsync(
model.Email, model.Password, model.RememberMe, shouldLockout: false);
ここで、SignInManager
は、上記のプロパティです。 OWINコンテキスト解像度が設定されている方法の詳細については
、Startup.Auth.cs
に以下のコードを参照してください。
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
これは、そのことを行うためにHttpContext.GetOwinContext().Get<ApplicationSignInManager>()
を可能にするものです。
私はそれらを削除すると、それはまだレジスタとログイン機能のために働く。 – Liz