创建用户时出现 ObjectDisposedException
ObjectDisposedException when creating user
我在尝试创建用户时遇到错误。我在下面的代码中 line 15
得到了它。
1 public async void AddOrganisationAdmin()
2 {
3
4 String OrganisationName = Request["OrganisationName"];
5 Debug.Print(OrganisationName);
6 RegisterViewModel model = new RegisterViewModel();
7 model.Email = "admin@" + OrganisationName;
8 model.Organisation = OrganisationName;
9 model.Password = "adminPassword!1";
10 model.ConfirmPassword = "adminPassword!1";
11 model.Role = "Organisation Administrator";
12
13
14 var user = new ApplicationUser() { UserName = model.Email, Email = model.Email, Organisation = model.Organisation, Role = model.Role };
15 IdentityResult result = await UserManager.CreateAsync(user, model.Password);
16 }
错误是:
An exception of type 'System.ObjectDisposedException' occurred in mscorlib.dll but
was not handled in user code
Additional information: Cannot access a disposed object.
释放了什么对象?这些行是 asp.net mvc 5 项目中默认寄存器函数的副本,所以我做错了什么?
我正在从 ajax post 中调用该函数,如下所示:
$.ajax({
url: "/Account/AddOrganisationAdmin",
type: 'POST',
data: { OrganisationName : "@CompanyName"},
success: function (data, textStatus, xhr) {
console.log(data);
},
error: function (xhr, textStatus, errorThrown) {
console.log(xhr);
}
});
我进入了这个函数,我得到了正确的名字。
tacos_tacos_tacos 的评论让我对 dbcontext 进行了一些研究,经过反复试验后,我得到了以下结果
1 public void AddOrganisationAdmin()
2 {
3
4 String OrganisationName = Request["OrganisationName"];
5 Debug.Print(OrganisationName);
6 RegisterViewModel model = new RegisterViewModel();
7 model.Email = "admin@" + OrganisationName + ".com";
8 model.Organisation = OrganisationName;
9 model.Password = "adminPassword!1";
10 model.ConfirmPassword = "adminPassword!1";
11 model.Role = "Organisation Admin";
12 Promato.Models.ApplicationDbContext dbcontext = new Promato.Models.ApplicationDbContext();
13
14 var user = new ApplicationUser() { UserName = model.Email, Email = model.Email, Organisation = model.Organisation, Role = model.Role };
15 user.PasswordHash = UserManager.PasswordHasher.HashPassword(model.Password);
16 user.SecurityStamp = Guid.NewGuid().ToString();
17 dbcontext.Users.Add(user);
18 dbcontext.SaveChanges();
19 }
这段代码对我有用。用户已添加到 .mdf,我可以登录:)
我在尝试创建用户时遇到错误。我在下面的代码中 line 15
得到了它。
1 public async void AddOrganisationAdmin()
2 {
3
4 String OrganisationName = Request["OrganisationName"];
5 Debug.Print(OrganisationName);
6 RegisterViewModel model = new RegisterViewModel();
7 model.Email = "admin@" + OrganisationName;
8 model.Organisation = OrganisationName;
9 model.Password = "adminPassword!1";
10 model.ConfirmPassword = "adminPassword!1";
11 model.Role = "Organisation Administrator";
12
13
14 var user = new ApplicationUser() { UserName = model.Email, Email = model.Email, Organisation = model.Organisation, Role = model.Role };
15 IdentityResult result = await UserManager.CreateAsync(user, model.Password);
16 }
错误是:
An exception of type 'System.ObjectDisposedException' occurred in mscorlib.dll but
was not handled in user code
Additional information: Cannot access a disposed object.
释放了什么对象?这些行是 asp.net mvc 5 项目中默认寄存器函数的副本,所以我做错了什么?
我正在从 ajax post 中调用该函数,如下所示:
$.ajax({
url: "/Account/AddOrganisationAdmin",
type: 'POST',
data: { OrganisationName : "@CompanyName"},
success: function (data, textStatus, xhr) {
console.log(data);
},
error: function (xhr, textStatus, errorThrown) {
console.log(xhr);
}
});
我进入了这个函数,我得到了正确的名字。
tacos_tacos_tacos 的评论让我对 dbcontext 进行了一些研究,经过反复试验后,我得到了以下结果
1 public void AddOrganisationAdmin()
2 {
3
4 String OrganisationName = Request["OrganisationName"];
5 Debug.Print(OrganisationName);
6 RegisterViewModel model = new RegisterViewModel();
7 model.Email = "admin@" + OrganisationName + ".com";
8 model.Organisation = OrganisationName;
9 model.Password = "adminPassword!1";
10 model.ConfirmPassword = "adminPassword!1";
11 model.Role = "Organisation Admin";
12 Promato.Models.ApplicationDbContext dbcontext = new Promato.Models.ApplicationDbContext();
13
14 var user = new ApplicationUser() { UserName = model.Email, Email = model.Email, Organisation = model.Organisation, Role = model.Role };
15 user.PasswordHash = UserManager.PasswordHasher.HashPassword(model.Password);
16 user.SecurityStamp = Guid.NewGuid().ToString();
17 dbcontext.Users.Add(user);
18 dbcontext.SaveChanges();
19 }
这段代码对我有用。用户已添加到 .mdf,我可以登录:)