簡體   English   中英

MySQL SQL ASP角色提供程序錯誤。 無法連接到SQL Server數據庫

[英]mySQL asp role provider error. Unable to connect to SQL Server database

這是我第一次嘗試為asp.net做角色,我擁有的是mySQL后端,我想為用戶添加一堆角色。 我在下面使用的代碼,我不斷收到錯誤消息無法連接到SQL Server數據庫。 我假設這是因為默認提供程序引用了SQL,但是我無法弄清楚如何切換它,因此我可以向用戶添加多個角色。 謝謝您的幫助!

using (MySqlConnection cn2 = new MySqlConnection("Server=localhost;Database=users; User=root;Password=PASSWORD;"))
            {
                cn2.Open();
                MySqlCommand cmd2 = new MySqlCommand(storedProcedureName2, cn);
                cmd2.CommandType = CommandType.StoredProcedure;
                cmd2.Parameters.Add("@usernameID", userID);
                MySqlDataReader dr2 = cmd2.ExecuteReader();
                while (dr2.Read())
                {
                    string roleName = dr2["role"].ToString();
                    Roles.AddUserToRole(userID, roleName);
                }


            }

您可以在web.config文件中配置ASP.NET成員資格和角色。 這樣的事情會將您的默認提供程序設置為MySQL后端:

<membership defaultProvider="MySqlMembershipProvider">
<providers>
<clear />
<add name="MySqlMembershipProvider" type="MySql.Web.Security.MySqlMembershipProvider,M ySql.Web,Version=6.3.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" autogenerateschema="true" connectionStringName="LocalMySqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requireQuestionAndAnswer="false" requireUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="0" passwordStrengthRegularExpression="" applicationName="/" />
</providers>
</membership>
<profile defaultProvider="MySqlProfileProvider">
<providers>
<clear/>
<add name="MySqlProfileProvider" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.3.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" conectionStringName="LocalMySqlServer" applicationName="/"/>
</providers>
</profile>
<roleManager enabled="true" defaultProvider="MySqlRoleProvider">
<providers>
<clear/>
<add connectionStringName="LocalMySqlServer" applicationName="/" name="MySqlRoleProvider"
type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.3.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
</providers>
</roleManager>
<trust level="Full"/>
<machineKey validationKey="AutoGenerate" validation="SHA1"/>

編輯:我添加了下面的connectionStrings部分:

    <connectionStrings>
    <remove name="LocalMySqlServer"/>
    <add name="LocalMySqlServer" connectionString="Server=localhost;Database=users; User=root;Password=PASSWORD;" providerName="MySql.Data.MySqlClient"/>
    </connectionStrings>

嘗試以下作為連接字符串:

 "Server=localhost;Port=3306;Database=users;Uid=root;Pwd=PASSWORD;"

如果可行,請更改密碼:)

如果這不起作用,並假設錯誤在於數據庫連接中(您通過發布太多行代碼而使我困惑),請執行通常的檢查:

  • 服務器正在運行嗎?
  • 密碼正確嗎
  • 端口是默認端口(3306)
  • 是否存在內部防火牆問題,因為MySQL使用TCP:3306,理論上防火牆可以阻止此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM