2011-07-23 9 views
2

CreateUserWizardコントロールを使用して、ユーザーから情報を収集し、カスタムデータベースに挿入するだけです。私はAsp.Netメンバーシップを使用したくありません。CreateUserWizardコントロールがASPNETDB.MDFデータベースを自動的に追加するのはなぜですか?

私はweb.configファイル <membership> <providers> <clear /> </providers> </membership>

にこの設定を追加すると、次のエラーが Default Membership Provider must be specified.

そして、ときに私は、web.configファイルからこの設定を削除しています。ページは正常に実行されますが、createUserWizardコントロールは自動的にASPNETDB.MDFデータベースをApp_Dataフォルダに追加します。

質問:ASPNETDBまたはasp.netメンバーシップを使用しないカスタムデータベースでCreateUserWizardを使用できますか?

答えて

3

CreateUserWizardコントロールは、Webサイトのユーザーデータストアと通信するMembershipProviderオブジェクトのユーザーインターフェイスを提供し、データストアに新しいユーザーアカウントを作成します。 CreateUserWizardは、MembershipProviderを使用してユーザーを作成し、必要に応じてユーザーを無効にします(msdn参照)。

したがって、CreateUserWizardを使用する場合は、メンバーシッププロバイダを使用する必要があります。

標準会員サービスプロバイダを使用しない場合は、Custom Membership Providerの作成を検討する必要があります。

しかし、あなたがなぜ標準的なメンバーシップを使用したくないのかは不明です。おそらくasp.netに実装されている認証機能を使用して、標準メンバーシップスキーマを独自のデータベースに組み込んで、可能なセキュリティ問題などを含めたくない仕事を保存する可能性を検討する価値があります。 Hereメンバーシップスキーマをアプリケーションデータと同じデータベースに配置する方法を見つけることができます。

UPDATE:

それでもメンバーシッププロバイダによってユーザを作成するから、CreateUserWizardのでCreateUserステップを防ぐためにしたい場合は、あなたがCreatingUserイベントを処理しようとするとtrueにそのLoginCancelEventArgs.Cancelプロパティを設定することができます。

例コード:

protected void RegisterUser_CreatingUser(object sender, LoginCancelEventArgs e) 
{ 
e.Cancel = true; 
} 

次にあなたがNextButtonClickイベントを処理する必要があり、ウィザードの次のページに移動させるために:

  1. e.Cancel = falseを追加します。
  2. CreateUserWizard.ActiveStepIndex =(次のウィザードのステップ インデックス)を追加します。

その後、ユーザーを手動で作成する必要があります。 FinishButtonClickイベントハンドラの

希望します。

+0

私はテキストボックスコントロールを使用するので、Createuserwizardを使いたいです。私はMembershipProviderを使いたくありません。メンバーシップなしで使用することは可能ですか?ラベル、テキストボックスなどのような標準asp.netコントロールを使用しています。 –

+1

通常の[asp:Wizard](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.wizard)を使用してください。 aspx)コントロールを使用します。 2つのテキストボックスと2つの[バリデータ](http://msdn.microsoft.com/en-us/library/aa479013.aspx)を貼り付け、FinishButtonClickにユーザーデータを自分で保存します。詳細については、このチュートリアル(http://www.codeproject.com/KB/aspnet/Wizard_Control.aspx)を参照してください。 – Kirill

+0

ありがとう、Krill。私のためのコード例があります。 –

0

メンバーシップテーブル、ビュー、およびストアドプロシージャをデータベースに追加したいという同じ問題があったので、Visual Studioコマンドプロンプトを使用して次のコマンドを実行し、次のコマンドラインを実行する必要があります。

Aspnet_regsql.exe -W 

その後必要になりますウィザードでは、メンバーシップ・テーブル、ビューとストアドプロシージャ

enter image description here

を作成できるように表示されます、それは大文字と小文字が区別されていることに注意してくださいweb.configファイルを更新して、データベース接続文字列によって.mdfファイルを指す接続文字列を更新します。

+0

返信いただきありがとうございます。私はメンバーシップテーブルを使いたくありません。私は、ユーザーの作成ウィザードを使用したいだけです。 –

+0

ユーザー作成ウィザードを使用するには、作成したユーザーの情報をデータベースに保存する必要があります。そのため、asp.netは.mdfファイルをapp_dataに追加して、必要な情報を保存して、この情報を保持するデータベーステーブルが必要です。 –

+0

ええ、私はaspnetdbテーブルにユーザInfoを保存したくありません。私は新しいデータベーステストとテーブルUserを作成します。私はUserテーブルにユーザ情報を保存したい。私はデータベーステストにaspnetdbテーブルを追加したくありません。なぜcreateuserwizardはaspnetdbまたはasp.netのメンバーシップに依存していますか? –

関連する問題