最近开始学习了解ASP.NET的东西,看到MembershipProvider的相关内容,ASP.NET用的SQL SERVER数据库,我自己装的MySQL,想改过来,一开始想自己照着SQL SERVER的写,研究了半天才发现MySQL提供的API里已经实现了,呵呵,那就用现成的吧。
一开始没弄成功,研究了一会MySQL的在线帮助文档,试了几次,发现是配置文件没弄好。都怪自己没仔细看帮助,有几个关键地方没弄清楚,下面是几个注意事项:
在web.config文件中:
1.保证MySQL数据库连接字符串正确
<connectionStrings>
< add name ="MySqlConnectionString " connectionString=" Server=127.0.0.1;User=root;Password=mypasswd;Database=db1" providerName=" MySql.Data.SqlClient" />
</connectionStrings>
2.正确配置membership节:
<membership defaultProvider=" MySQLMembershipProvider">
< providers>
< clear />
< add name ="MySQLMembershipProvider " autogenerateschema ="true " type=" MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName= "MySqlConnectionString" enablePasswordRetrieval ="false " enablePasswordReset ="true " requiresQuestionAndAnswer ="true " applicationName=" /" requiresUniqueEmail=" false" passwordFormat=" Clear" maxInvalidPasswordAttempts ="5 " minRequiredPasswordLength ="7 " minRequiredNonalphanumericCharacters ="1 " passwordAttemptWindow ="10 " passwordStrengthRegularExpression ="" />
</ providers>
</ membership>
(1)必须设置defaultProvider属性,——程序中Membership静态类会自动使用指定的MySQLMembershipProvider访问数据库;
(2)必须设置autogenerateschema="true",——ASP.NET会自动在数据库中创建需要的表结构
3.profile和rolemanager 两个配置节的配置类似,指定defaultProvider属性值为MySQLMembershipProvider即可。
这个配置通过了程序验证。