2011-07-23 21 views
2

我只想使用CreateUserWizard控件從用戶收集信息並插入到我的自定義數據庫中。我不想使用Asp.Net Membership。爲什麼CreateUserWizard控件自動添加ASPNETDB.MDF數據庫?

當我添加此設置到Web.config <membership> <providers> <clear /> </providers> </membership>

以下錯誤出現 Default Membership Provider must be specified.

當我刪除從web.config此設置。頁面成功運行,但createUserWizard Control會自動將ASPNETDB.MDF數據庫添加到App_Data文件夾。

問題:我們可以使用CreateUserWizard自定義數據庫與使用ASPNETDB或asp.net成員資格出?

回答

3

CreateUserWizard控件提供了與您的網站的用戶數據存儲在創建數據存儲新用戶帳戶傳達的MembershipProvider對象的用戶界面。 CreateUserWizard依靠MembershipProvider創建用戶並在必要時禁用它們(參見msdn)。

因此,如果您使用CreateUserWizard,則必須使用成員資格提供程序。

如果您不想使用標準的成員資格提供程序,則應考慮創建一個Custom Membership Provider

但是從你的問題,爲什麼你不想使用標準的會員,目前尚不清楚。可能這是值得看的可能性,包括標準模式成員到自己的數據庫,併爲自己節省大量的工作(更不用提可能的安全問題等),利用在asp.net中已經實現的授權功能。 Here您可以找到如何將Membership模式與應用程序數據放入同一個數據庫。

UPDATE:

如果你仍然想阻止的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 =(您的下一個嚮導步驟 index);

之後,您將需要手動創建用戶,例如,在FinishButtonClick事件處理程序中。

希望它有幫助。

+0

我想使用Createuserwizard,因爲我使用的是文本框控件。我不想使用MembershipProvider。沒有會員資格可以使用嗎?因爲我們使用像標籤,文本框等標準的asp.net控件 –

+1

只需使用常規[asp:嚮導](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.wizard。 aspx)控制。把幾個文本框和幾個[驗證器](http://msdn.microsoft.com/en-us/library/aa479013.aspx)放在它上面,並將用戶數據存儲在FinishButtonClick上。有關更多詳細信息,請參閱本教程(http://www.codeproject.com/KB/aspnet/Wizard_Control.aspx)。 – Kirill

+0

謝謝,磷蝦。示例代碼適用於我。 –

0

我有我想要的成員表,視圖和存儲過程是在我的數據庫同樣的問題,所以你必須使用Visual Studio命令提示符下運行下面的命令,並寫入以下命令行:

Aspnet_regsql.exe -W 

請注意,它是那麼敏感的情況下,將出現一個嚮導,允許您創建成員表,視圖和存儲過程

enter image description here

然後,你將需要更新您的web.config文件以更新數據庫連接字符串指向.mdf文件的連接字符串。

+0

感謝您的回覆。我不想使用會員表。我只想使用創建用戶嚮導控件。 –

+0

要使用創建用戶嚮導控件,需要將創建的用戶的信息保存到數據庫中,這就是爲什麼asp.net將.mdf文件添加到您的app_data以保存它所需的信息,以便能夠使用創建用戶嚮導將需要數據庫表來保存這些信息。 –

+0

是的,但我不想在aspnetdb表中存儲用戶信息。我創建了一個新的數據庫測試和一個表User。我想將用戶信息存儲在用戶表中。我不想將aspnetdb表添加到我的數據庫測試中。爲什麼createuserwizard依賴於aspnetdb或asp.net成員資格? –

相關問題