MySQL的ASP角色提供程序错误。无法连接到SQL Server数据库 [英] mySQL asp role provider error. Unable to connect to SQL Server database

查看:307
本文介绍了MySQL的ASP角色提供程序错误。无法连接到SQL Server数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我做的asp.net的角色,我有什么是MySQL后端第一次尝试,我想了一堆角色添加到用户。在code我使用下面,我不断收到错误无法连接到SQL Server数据库。我假设这是因为默认的供应商是指SQL,但我无法弄清楚如何切换,所以我可以将多个角色添加到用户。感谢您的帮助!

 使用(CN2的MySqlConnection =新的MySqlConnection(服务器=本地主机;数据库=用户;用户=根;密码=密码;))
            {
                cn2.Open();
                MySqlCommand的CMD2 =新的MySqlCommand(storedProcedureName2,CN);
                cmd2.CommandType = CommandType.StoredProcedure;
                cmd2.Parameters.Add(@ usernameID,用户ID);
                MySqlDataReader将DR2 = cmd2.ExecuteReader();
                而(dr2.Read())
                {
                    。字符串角色名= DR2 [角色]的ToString();
                    Roles.AddUserToRole(用户ID,角色名);
                }
            }


解决方案

您可以在web.config文件中配置ASP.NET成员和角色。像这样的东西会默认提供程序设置为一个MySQL后端:

 <会员defaultProvider =MySqlMembershipProvider>
<供应商>
<清/>
<添加名称=MySqlMembershipProviderTYPE =MySql.Web.Security.MySqlMembershipProvider,男ySql.Web,版本= 6.3.3.0,文化=中性公钥= c5687fc88969c44dautogenerateschema =真的connectionStringName =LocalMySqlServerenablePasswordRetrieval = 假enablePasswordReset设置=真requireQuestionAndAnswer =假requireUniqueEmail =假maxInvalidPasswordAttempts =5minRequiredPasswordLength =6minRequiredNonalphanumericCharacters =0passwordAttemptWindow =0passwordStrengthRegularEx pression =的applicationName =/ />
< /供应商>
< /会员>
<型材defaultProvider =MySqlProfileProvider>
<供应商>
<清/>
<添加名称=MySqlProfileProviderTYPE =MySql.Web.Profile.MySQLProfileProvider,MySql.Web,版本= 6.3.3.0,文化=中性公钥= c5687fc88969c44dconectionStringName =LocalMySqlServer的applicationName =//>
< /供应商>
< / profile文件>
< roleManager启用=真正的defaultProvider =MySqlRoleProvider>
<供应商>
<清/>
<添加的connectionStringName =LocalMySqlServer的applicationName =/NAME =MySqlRoleProvider
键入=MySql.Web.Security.MySQLRoleProvider,MySql.Web,版本= 6.3.3.0,文化=中性公钥= c5687fc88969c44d/>
< /供应商>
< / roleManager>
<信任级别=完全/>
<的machineKey的validationKey =自动生成验证=SHA1/>

编辑:我添加下面的connectionStrings节:

 <&是connectionStrings GT;
    <清除NAME =LocalMySqlServer/>
    <添加名称=LocalMySqlServer的connectionString =服务器=本地主机;数据库=用户;用户=根;密码=密码;的providerName =MySql.Data.MySqlClient/>
    < /&是connectionStrings GT;

This is my first attempt at doing roles for asp.net, what I have is a mySQL backend, and I want to add a bunch of roles to a user. The code i'm using below, i keep getting the error Unable to connect to SQL Server database. I'm assuming this is because the default provider refers to SQL, but i'm not able to figure out how to switch it so I can add multiple roles to a user. Thanks for the help!

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);
                }


            }

解决方案

You can configure the ASP.NET Membership and roles in the web.config file. Something like this would set your default provider to a MySQL backend:

<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"/>

EDIT: I added the connectionStrings section below:

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

这篇关于MySQL的ASP角色提供程序错误。无法连接到SQL Server数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆