2015-05-04 33 views
0

我是一名ICT學生,2年前我學會了如何處理asp.net和mvc3。我不得不用mysql數據庫建立一個簡單的網站。在現有的Mysql數據庫中使用WebSecurity

現在我想用asp.net和MVC5創建自己的網站,仍然使用mysql。然而,這麼多變了!我想弄清楚如何使用WebSecurity進行用戶認證和SimpleMembership授權。

現在我有兩個數據庫。一個帶有生成的websecurity表,另一個帶有我自己的表。我無法在互聯網上找到關於如何使用這種組合的教程。

我的問題是:

  • 難道是合乎邏輯的結合使用這兩個數據庫?
  • 當調用Websecurity.Login時,到底發生了什麼?我有我的MySQL數據庫中的用戶表。系統可以檢查這些記錄嗎?
  • 我有一個名爲「用戶」的表。我想用這個表來代替aspnet_users生成的表。
  • 如何使用我的webconfig文件中生成的connectionstring?

我想盡可能具體。但是很難定義我真正需要知道的內容,因爲我無法在Internet上找到關於websecurity和mysql數據庫的良好教程。

幫助表示讚賞!

回答

0

因此,我只是用你正在談論的方法建立一個網站。

第一步是在自己的數據庫中擁有自己的用戶表。你說你已經有了。大!第1步完成。現在,在ASP.NET應用程序中(假設您正在使用賬戶控制器隨附的默認模板等)。

另一步是在你的web.config文件中,確保有一個默認連接。您需要使用您的用戶表存在的連接。

<add name="DefaultConnection" connectionString="CONNSTRINGHERE" providerName="System.Data.SqlClient" /> 

^應該看起來像這樣。當然,您可以在此處使用其他連接(只需在該部分內添加另一個連接字符串)。

現在,最後一步是進入InitializeSimpleMembershipAttribute.cs文件。我永遠無法得到的代碼爲我工作,但我註釋掉所有構造函數的內部,用這個來代替:

  public SimpleMembershipInitializer() 
 
      { 
 
       try 
 
       { 
 
        if (!WebSecurity.Initialized) 
 
        { 
 
         WebSecurity.InitializeDatabaseConnection("CONNSTRINGHERE", "Users", "User_ID", "Username", autoCreateTables: true); 
 
        } 
 
       } 
 
       catch (Exception ex) 
 
       { 
 
        throw new InvalidOperationException("Something is wrong", ex); 
 
       } 
 
      }

它說:「用戶」,你需要把您的數據庫表的名稱。你說你的也只是叫用戶,所以不需要做任何改變。

所以這一切的工作方式是,你有你的默認連接定義到您的數據庫在webconfig。 Simplemembership知道你的表被稱爲用戶。確保有一個名爲「用戶名」的列,你應該很好去。下一次運行應用程序時,它會爲您自動創建數據庫中的四個表格:webpages_Membership,webpages_OAuthMembership,webpages_Roles,webpages_UsersInRoles。你可以看看這些,看看它們如何使用等,我不會詳細討論。

但是,您的網站現在將使用用戶表中的登錄信息進行身份驗證。當您創建新用戶時,它將使用所有這些表的組合來進行身份驗證。

希望這可以幫助你一點。您的connstrings可能會因爲我使用sqlserver而異,而您使用的是mysql。你可以谷歌正確的connstring格式。

相關問題