我们的应用程序中有一个屏幕,允许管理员角色的成员编辑用户帐户详细信息。
最终,任何用户对象都会发送到服务器并使用以下方法进行更新:
await userManager.UpdateAsync(user);
这在更新用户记录时按预期工作。我们可以进行持久化到数据库的更改,例如用户名、电话号码等。
我看到的问题是,有时更新角色而不是向用户添加其他角色时,它会删除所有角色。
在我们的ApplicationUser
对象上,我们有一个这样的属性:
public virtual ICollection<IdentityUserRole<string>> Roles { get; set; } = new List<IdentityUserRole<string>>();
因此,我们可以将客户端和服务器之间的角色作为用户对象的一部分进行反弹。
我正在努力理解的是userManager.UpdateAsync(user);
我所看到的方法的不一致行为。它显然有效,否则永远无法向用户添加任何角色。
每次提交时,到达服务器的对象都会正确填充角色。基本流程是:
添加角色并提交
角色正确添加到用户
添加其他角色并提交
删除所有角色
如何防止它删除角色?
谢谢!
ITMISS
慕哥6287543
相关分类