0

我已经向 UserProfile asp.net 成员表、姓氏、地址、手机等添加了一些自定义属性。所以我可以使用创建新用户。

WebSecurity.CreateUserAndAccount(UserName, Password,
        propertyValues: new
        {
          UserId = model.userId,
          UserLastName = model.lastName,
          UserAddress = model.address,                                                
          .
          .
         }
);

所以我想知道是否有可能以类似的方式实现更新查询,包括这个自定义属性。谢谢你。

4

1 回答 1

0

是的你可以。但是我不认为WebSecurity提供了一种通过其 API 更新成员表中的额外列的方法,例如 UserProfile。

我们就是这样做的,我们有 MVC4 ASP.NET 互联网应用程序项目,并且我们使用的是 EF5.0 Code First。

您已经知道如何在 UserProfile 表中添加额外的列(表名可以是任何名称)。

一旦我们有了一个类(具有所有必需的额外列以及 UserId 和 UserName),

  1. 添加了一个UserController专用于促进 UserProfile 的 CRUD 操作的控制器。
  2. UserController 使用UserService业务层中的一个类来处理对 UserProfile 类(实体)的所有 CRUD 操作。
  3. 在 Edit Post 操作中,控制器调用 UserService 类UpdateUser()方法,如下所示:

    public void UpdateUser(UserProfile user)
    {
        Guard.ArgumentNotNull(user, "user");
    
        if (_roleWrapper.GetRolesForUser(user.UserName).Any())
        {
            _roleWrapper.RemoveUserFromRoles(user.UserName, _roleWrapper.GetRolesForUser(user.UserName));
        }
    
        if (!_roleWrapper.IsUserInRole(user.UserName, user.Role))
        {
            _roleWrapper.AddUserToRole(user.UserName, user.Role);
        }
    
        _dataContext.Update<UserProfile>(user);
    }
    

以上文字和示例仅供参考,您可以简化。基本上,您需要掌握 UserProfile 类并使用 DbContext 手动更新它。WebSecurity考虑到简单性,API 有限。

希望有所帮助(如果有任何令人困惑的地方,请告诉我,我会进一步扩展)。

于 2013-09-27T06:37:21.117 回答