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. UserControllerUserProfile の CRUD 操作を容易にする専用のコントローラーを追加しました。
  2. UserController は、UserServiceUserProfile クラス (エンティティ) に対するすべての CRUD 操作を処理するビジネス層のクラスを使用します。
  3. Edit Post 操作で、コントローラーはUpdateUser()以下のような UserService クラス メソッドを呼び出します。

    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 に答える