2

CreateUserWizard コントロールを使用して、ユーザーから情報を収集し、カスタム データベースに挿入したいだけです。Asp.Net Membership を使用したくありません。

この設定を web.config に追加すると <membership> <providers> <clear /> </providers> </membership>

以下のエラーがでます Default Membership Provider must be specified.

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

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

4

2 に答える 2

3

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

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

標準のメンバーシップ プロバイダーを使用したくない場合は、カスタム メンバーシップ プロバイダーの作成を検討する必要があります。

しかし、あなたの質問からは、標準のメンバーシップを使用したくない理由が明確ではありません。asp.net に既に実装されている承認機能を使用して、標準のメンバーシップ スキーマを独自のデータベースに含め、多くの作業を節約する可能性を検討する価値があるかもしれません (考えられるセキュリティの問題などは言うまでもありません)。ここでは、メンバーシップ スキーマをアプリケーション データと同じデータベースに配置する方法を確認できます。

アップデート:

CreateUserWizard の CreateUser ステップでメンバーシップ プロバイダーを使用してユーザーが作成されないようにする場合は、CreatingUser イベントを処理して、その LoginCancelEventArgs.Cancel プロパティを true に設定してみてください。

コード例:

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

次に、ウィザードの次のページに移動するには、NextButtonClick イベントを処理する必要があります。

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

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

それが役に立てば幸い。

于 2011-07-23T16:35:27.283 に答える
0

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

Aspnet_regsql.exe -W

大文字と小文字が区別されることに注意してください。その後、メンバーシップテーブル、ビュー、およびストアドプロシージャを作成できるウィザードが表示されます。

ここに画像の説明を入力してください

次に、web.configファイルを更新して、データベース接続文字列によって.mdfファイルを指す接続文字列を更新する必要があります。

于 2011-07-23T15:14:56.967 に答える