使用SimpleMembershipProvider更新自定义用户配置文件字段?
我在UserProfile
表中添加了一个名为ClassOfYear
的自定义字段,我可以在注册时将数据输入到配置文件中,如下所示:
var confirmationToken = WebSecurity.CreateUserAndAccount(model.UserName, model.Password, propertyValues: new { ClassOfYear = model.ClassOfYear }, requireConfirmationToken: true);
但是,现在我希望能够在管理它时更新配置文件,但我似乎无法找到这样做的方法。 我是否需要自己更新UserProfile
表? 如果没有,这样做的适当方法是什么?
仅供参考,我正在使用Dapper作为我的数据访问层,以防万一。 但是, WebSecurity
,我可以通过Dapper更新UserProfile
表,如果这是我应该做的,我只是认为WebSecurity
类或类似的东西已经有了一种方式,因为自定义用户配置文件字段已与CreateUserAndAccount
方法。
谢谢大家!
SimpleMembershipProvider代码中没有任何内容可以对除了create之外的其他字段执行任何操作。
只需从ORM中自己查询值即可。
您可以使用WebSecurity.GetUserId(User.Identity.Name)获取用户的ID,然后使用Dapper查询UserProfile表。
以防万一有人面临同样的问题。 在使用SimpleMembership进行了很多战斗后,我得到了一个解决方案,它填充了webpages_Membership和我的自定义Users表。 有关说明,请遵循我的代码:
public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { TUsuario userDTO= new TUSer() { Name = model.Name, Login = model.Login, Pass = model.Pass.ToString(CultureInfo.InvariantCulture), Active = true, IdCompany = model.IdCompany, IdUserGroup = model.IdUserGroup, }; try { WebSecurity.CreateUserAndAccount(model.Login, model.Pass, new { IdUser = new UserDAL().Seq.NextVal(), Name = userDTO.Name, Login = userDTO.Login, Active = userDTO.Active, Pass = userDTO.Pass, IdCompany = userDTO.IdCompany, IdUserGroup = userDTO.IdUserGroup }); WebSecurity.Login(model.Login, model.Pass);
在诅咒框架之后,给了我一股清新的空气:)
PS。:使用WebSecurity.InitializeDatabaseConnectionfunction在global.asax文件中指定users表。