防止 ASP.NET 身份的用户管理器自动保存



我正在尝试与ASP集成。. NET标识及其用户管理器。我有自己的自定义用户对象,我已经将其添加到现成的ApplicationUser中。UserManager有一个创建新用户的Create()方法(实际上它在UserManagerExtensions类中)。问题是,它会自动将更改保存到这里确认的数据库中。在保存新用户之前,我想在相同的"事务"中做一些其他操作,这样我就不能让UserManager自动保存更改。

有趣的是,我在与UserManager关联的DbContext中重写了SaveChange()方法,但它从未在Create()中的自动保存中中断该方法。

是否有办法配置UserManager不自动保存更改

此功能已在默认UserStore中实现。因此,您只需要配置它。在ApplicationUserManager.Create()静态方法中,或者在实例化UserStore的任何地方,将AutoSaveChanges设置为false

public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) 
{
    var manager = new ApplicationUserManager(
        new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()) 
             { AutoSaveChanges = false });
    // rest of codes
}

相关内容

  • 没有找到相关文章

最新更新