gpt4 book ai didi

asp.net-mvc - v下一步。 AspNet.Identity 和自定义 UserStore。 UserStore 处理异常

转载 作者:行者123 更新时间:2023-12-01 18:10:53 26 4
gpt4 key购买 nike

我正在尝试了解 vNext。
我编写了自定义 UserStore,它与 MongoDB 一起使用并实现了这些接口(interface):

  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() 中收到 ObjectDisposeException - 称为 UserStore.Dispose() 的东西。
在 github.com/aspnet 上的 UserManager 代码中,仅在 UserManager.Dispose() 中调用 Store.Dispose()。
我可以忽略 Dispose 的调用,一切正常,但这不是好方法。
所以我不知道该怎么办

附注问题是:什么(以及为什么)可以调用 UserStore.Dispose()?

最佳答案

在 vNext 中,DI 是内置的并管理身份服务的生命周期。您可能会在服务被处置后尝试使用身份,默认情况下,身份服务的生命周期仅限于一个请求,因此,例如,如果您试图保留对用户管理器的引用并在多个请求中重用它,那么会导致 ObjectDisposeException。

关于asp.net-mvc - v下一步。 AspNet.Identity 和自定义 UserStore。 UserStore 处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25575795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com