2011-08-09 15 views
0

Webアプリケーションをasp.netからMVC3に変換していて、古いアプリケーションで設定されたプロファイルプロパティを設定してアクセスする方法を理解しようとしています。MVC3メンバーシッププロファイルのASP.NETからの変換

私は古いアプリからデータベースにアクセスすることができますし、私はこの新しいユーザーがデータベース「USER」テーブルに置かれ

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

を使用してMVC3を使用して新しいユーザーを作成することができます。ユーザーの追加情報も保存する必要があります。古いアプリケーションで作成した古いデータベースをユーザーに残す必要があります。新しいアプリケーションに切り替えると、現在のユーザーはログオンできますが、一部のレイアウトの改善。

は古いデータベースには、その中のテーブルはとても

ユーザーID、PropertyNames、PropertyValuesString、PropertyValuesBinary、LastUpdatedDate

DB7E1F8E-FB45-49E5-A2AF-C83A371CC22Fのような追加の値を格納されている "PROFILE" と呼ばれています、パートナーID:S:0:2:名前:S:2:4:姓:S:6:12:インデックス:S:18:1:、26MiloMinderbinder3,0x、2010-09-29 21:23:33.737

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

ご協力いただきありがとうございます。

答えて

0

あなたはのMembershipProviderクラスを実装してみて、あなたのWeb.Configに登録...あなた自身のメンバーシップクラスを作ることができます...

それは、メンバーシップを処理するための非常に柔軟な方法です。その実装と

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; 
    } 

私は

+0

ウィルはこれをやって追加のプロファイルデータをPROFILEテーブルに保存しますか?私がこれを行うことについて読んだことはすべて、USERSテーブルを変更する必要があり、その贅沢はありません。 – samack

+0

いいえ、直接ではありませんが、そうする自由があります...あなたはデータを保存する場所を決めます。もしあなたがユーザーテーブルとプロファイルテーブルを分割することができれば...私は認証のためだけだと思いますUSERSテーブルが必要です...プロファイルテーブルを変更するには、単純にコントローラにメソッドを追加してください。 –

0

...それをすべての時間を使用して、デフォルトMVC 3インターネットアプリケーションテンプレートはとしてユーザーを作成するためのインターフェイスのメソッドを含んでいますだから -

  1. あなたのメソッドに新しいパラメータを追加(または既存のメソッドを変更する)si gnature

  2. _provider.CreateUserへの関数呼び出しは、あなたのパラメータを渡すためにインターフェイスメソッドにのparamsを追加(またはインタフェースに新しいメソッドを作成する)

  3. 変更

関連する問題