0

Web アプリケーションを asp.net から MVC3 に変換しており、古いアプリケーションで構成されたプロファイル プロパティを設定およびアクセスする方法を見つけようとしています。

古いアプリからデータベースにアクセスでき、MVC3 を使用して新しいユーザーを作成できます。

Membership.CreateUser(model.UserName, model.Password, model.Email, model.SecretQuestion, model.SecretAnswer, true, out createStatus);

この新しいユーザーは、データベースの「USER」テーブルに配置されます。ユーザーに関する追加情報も保存する必要があり、古いアプリケーションで作成された古いデータベースを引き続き使用する必要があるため、新しいアプリに切り替えると、現在のユーザーは引き続きログオンでき、レイアウトの改善以外の変更に気付かない.

古いデータベースには、「PROFILE」と呼ばれるテーブルもあり、追加の値が次のように保存されます

UserId 、 PropertyNames 、 PropertyValuesString 、 PropertyValuesBinary 、 LastUpdatedDate

DB7E1F8E-FB45-49E5-A2AF-C83A371CC22F、PartnerID:S:0:2:FirstName:S:2:4:LastName:S:6:12:Indexed:S:18:1:、26MiloMinderbinder3、0x、2010-09 -29 21:23:33.737

これは、MVC3 では使用できない MembershipWizard を使用して作成されました。MVC3 でユーザーを作成し、適切な値をこのテーブルに追加する方法を見つける必要があります。

あなたが提供できる助けを前もって感謝します。

4

2 に答える 2

0

デフォルトの MVC 3 インターネット アプリケーション テンプレートには、次のようにユーザーを作成するためのメソッドがインターフェイスに含まれています。

public interface IMembershipService
{
    int MinPasswordLength { get; }

    bool ValidateUser(string userName, string password);
    MembershipCreateStatus CreateUser(string userName, string password, string email);
    bool ChangePassword(string userName, string oldPassword, string newPassword);
}

その実装は次のとおりです。

        public MembershipCreateStatus CreateUser(string userName, string password, string email)
    {
        if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
        if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password");
        if (String.IsNullOrEmpty(email)) throw new ArgumentException("Value cannot be null or empty.", "email");

        MembershipCreateStatus status;
        _provider.CreateUser(userName, password, email, null, null, true, null, out status);
        return status;
    }

だから - あなたがする必要があります

  1. 新しいパラメーターをメソッド シグネチャに追加 (または既存のメソッドを変更) します。

  2. パラメータをインターフェイス メソッドに追加します (またはインターフェイスで新しいメソッドを作成します)。

  3. 関数呼び出しを _provider.CreateUser に変更して、パラメータを渡します

于 2011-08-09T19:08:59.203 に答える
0

独自のメンバーシップ クラスを作成できます... MembershipProvider クラスを実装して、Web.Config に登録してみてください...

メンバーシップを処理するための非常に柔軟な方法です。私はいつもそれを使用しています...

于 2011-08-09T17:39:22.350 に答える