2010-01-10 43 views
12

我完全不熟悉ASP.NET的成員/角色。這是我第一次使用它,並且我第一次嘗試ASP.NET MVC。當我爲MVC創建我的第一個項目時,它給了我一個可愛的模板來創建一個帳戶。我很高興看到我不必手動執行此操作。但是,它失敗了,因爲它無法連接到SQL Server。我沒有SQL Server,我有MySQL。有沒有簡單的方法可以讓我的系統使用MySQL,或者我將不得不創建自己的身份驗證?用於MySQL的ASP.NET會員/角色提供者?

回答

19

明白了!使用的MySql Connector/Net 6.2.2.0版本,請按照下列步驟......

  • 添加參考MySql.Web.dll
  • 在web.config中更改<membership>這樣:

    <membership defaultProvider="MySqlMembershipProvider"> 
        <providers> 
        <clear/> 
        <add name="MySqlMembershipProvider" 
         type="MySql.Web.Security.MySQLMembershipProvider, 
           MySql.Web, Version=6.2.2.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" 
         autogenerateschema="true" 
         connectionStringName="NAME_OF_YOUR_CONN_STRING" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="false" 
         passwordFormat="Hashed" 
         maxInvalidPasswordAttempts="5" 
         minRequiredPasswordLength="6" 
         minRequiredNonalphanumericCharacters="0" 
         passwordAttemptWindow="10" 
         passwordStrengthRegularExpression="" 
         applicationName="/" 
        /> 
        </providers> 
    </membership>
  • 運行項目| ASP.NET配置工具和安全選項卡上單擊測試
  • 測試在ASP.NET 3.5中,MySQL服務器5.1版中,Windows XP 64位
+0

謝謝。這是一個很大的幫助。不要錯過添加defaultProvider! – Kildareflare 2013-03-31 23:16:30

-1

點擊菜單Project,接着是ASP.NET Configuration。

這將在Data文件夾中爲您創建sql數據庫。

使用Visual Studio查看數據。

希望這會有所幫助。

編輯

我要補充一點,你就可以使用Ctrl + Alt + S看服務器資源管理器,然後這應該讓你看到你的數據庫有其表和數據。

您不應該需要安裝SQL。

+0

我得到的工具終於來了(它比糖蜜慢),但我沒有看到任何數據庫。我去了安全標籤,並試圖選擇一個數據存儲。然後它給了我一個提供者列表,但只有一個(AspNetSqlProvider),但是這給了我同樣的錯誤(無法連接到SQL服務器)。 – 2010-01-10 23:11:38

+0

在visual studio中,你現在可以看到aspnetdb.mdf文件了嗎?它應該在App_Data文件夾中。確保你正在顯示所有文件。 – griegs 2010-01-10 23:16:01

+1

編號MDF = SQL Server。我做*不*擁有SQL Server。 – 2010-01-10 23:39:18

2

原始問題沒有指定使用哪個版本的ASP.NET & MVC。隨着最近發佈的.NET 4.5和MVC 4,我遇到了與OP相同的問題,但使用了新技術。這是我的quick fix for it大部分與Josh Stodola的答案相同的配置,但有一些額外的步驟。

<membership defaultProvider="MySqlMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="MySqlMembershipProvider" 
     type="MySql.Web.Security.MySQLMembershipProvider, 
     MySql.Web, Version=6.5.4.0, PublicKeyToken=c5687fc88969c44d" 
    autogenerateschema="true" 
    connectionStringName="*NAME_OF_YOUR_CONN_STRING*" 
    enablePasswordRetrieval="false" 
    enablePasswordReset="true" 
    requiresQuestionAndAnswer="false" 
    requiresUniqueEmail="false" 
    passwordFormat="Hashed" 
    maxInvalidPasswordAttempts="5" 
    minRequiredPasswordLength="6" 
    minRequiredNonalphanumericCharacters="0" 
    passwordAttemptWindow="10" 
    passwordStrengthRegularExpression="" 
    applicationName="/" /> 
    </providers> 
</membership> 

獲取的AccountController和視圖的工作:

  1. 刪除MVC 4的AccountController,AccountModels,帳戶查看文件夾和_LoginPartial共享視圖
  2. 創建一個新的MVC 3 web應用
  3. 複製MVC 3 AccountController,AccountModels,帳戶視圖文件夾和_LogOnPartial共享視圖進入您的MVC 4應用程序
  4. 替換@Html.Partial(「_LoginPartial」)與我共享_Layout視圖@Html.Partial(「_LogOnPartial」)
0

在我的方案中,我不需要從我的.NET Web應用程序連接到MySQL。因此,我通過兩件事來解決了這個問題:

1)卸載MySQL .NET Connector(所有版本) 2)在Web.Config文件中,刪除在MySQL安裝後添加的所有密鑰。 (否則,安裝前拷貝回原來的web.config文件,在.NET Web應用程序根目錄)

現在,我的.NET應用程序是BAC