vNext を理解しようとしています。
MongoDB で動作し、これらのインターフェイスを実装するカスタム UserStore を作成しました。
public class UserStore : IUserStore<ApplicationUser>, IUserPasswordStore<ApplicationUser>, IUserSecurityStampStore<ApplicationUser>,
IUserLoginStore<ApplicationUser>, IUserClaimStore<ApplicationUser>, IUserEmailStore<ApplicationUser>, IUserRoleStore<ApplicationUser>,
IUserTwoFactorStore<ApplicationUser>
Startup.cs に以下が追加されました。
app.UseServices(services =>
{
services.AddIdentity<ApplicationUser>()
.AddUserStore(() => { return new UserStore(); })
.AddUserManager<UserManager<ApplicationUser>>()
.AddHttpSignIn();
services.AddMvc();
});
次に、Visual Studio テンプレートから変更されていない AccountController を使用しようとしましたが、問題が発生しました。
サインインすると、UserStore.FindByNameAsync() で ObjectDisposedException を取得します - UserStore.Dispose() と呼ばれるもの。
github.com/aspnet Store.Dispose() の UserManager コードでは、UserManager.Dispose() でのみ呼び出されます。
Dispose の呼び出しを無視するだけですべて正常に動作しますが、これは良い方法ではありません。
だから私は何をすべきか分かりません
PS 質問は: UserStore.Dispose() を呼び出すことができるもの (およびその理由) は何ですか?