我正在尝试与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
}