在MySql中实现MemberShip的权限管理

步骤:

1、在MySql种创建一个数据库,名称任意取,我们只是要得到一个空的数据库,我们假设这个数据库的名称为authentication。

2、在VS种创建一个Web应用程序,File——new——project——Web——在右边任意选中一个

           创建完了以后,运行一下程序,确保可以正常运行(如果不能运行,可能是MVC程序,没有添加默认的Controller,View)

3、给新创建的项目添加引用,MySql.Data、 MySql.Web,这个正常情况下操作为:右键References——add reference——在左边找到Extensions——mysql.data\mysql.web。

       如果没有你要的版本,到这里下载:http://dev.mysql.com/downloads/connector/net/

 

4、找到machine.config文件:

4

对文件进行修改:在文件中control-f,查找到 MySQLMembershipProvider,为其添加属性autogenerateschema="true",另外不要忘记,将MySql.Web的版本Version改成你自己添加引用时候的版本,记住属性connectionStringName="LocalMySqlServer",后面会用到,改后如下图:

6

 

5、配置项目,Web.config文件:

在Web.config文件中将默认的链接字符串改为:(name就是我们前面记下来的那个name)

<connectionStrings>

<remove name="LocalMySqlServer"/>

<add name="LocalMySqlServer"connectionString="Datasource=localhost;Database=users;uid=root;pwd=password;"providerName="MySql.Data.MySqlClient"/>

</connectionStrings>

 

另外还有奖默认的memberShip进行改变,格式如下:

<profile defaultProvider="MySQLProfileProvider">
  <providers>
    <clear />
    <add type="MySql.Web.Security.MySQLProfileProvider,
         MySql.Web,Version=6.7.4.0,
         Culture=neutral,
         PublicKeyToken=c5687fc88969c44d"
         name="MySqlProfileProvider"
         applicationName="/"
         connectionStringName="LocalMySqlServer"
         autogenerateschema="true" />
  </providers>
</profile>
<membership defaultProvider="MySqlMembershipProvider">
  <providers>
    <clear />
    <add name="MySqlMembershipProvider"
         type="MySql.Web.Security.MySQLMembershipProvider,
         MySql.Web,Version=6.7.4.0,
         Culture=neutral,
         PublicKeyToken=c5687fc88969c44d"
         connectionStringName="LocalMySqlServer"
         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="false"
         requiresUniqueEmail="true"
         passwordFormat="Hashed"
         maxInvalidPasswordAttempts="5"
         minRequiredPasswordLength="6"
         minRequiredNonalphanumericCharacters="0"
         passwordAttemptWindow="10"
         applicationName="/"
         autogenerateschema="true" />
  </providers>
</membership>

<roleManager defaultProvider="MySqlRoleProvider">
  <providers>
    <clear />
    <add connectionStringName="LocalMySqlServer"
         applicationName="/"
         name="MySqlRoleProvider"
         type="MySql.Web.Security.MySQLRoleProvider,
         MySql.Web,Version=6.7.4.0,
         Culture=neutral,PublicKeyToken=c5687fc88969c44d"
         autogenerateschema="true" />
  </providers>
</roleManager>

 

6、运行程序,确保可以通过,

 

7、打开Web Site Administration Tool,步骤:在VS中点击Project——Asp.net Configuration,这个时候很可能会报错,因外刚才所有的配置都体现在这边了,如果报错,仔细看它的错误信息,一般会得到比较好的线索。如果成功就会看到这样的界面:

                   9

 

8、进入Security选项卡,

     点击页面的 Select authentication type 链接,选择From the internet方式,回到Security的初始页面,

     进入Provider选显卡,选择MySqlMemberShipProvider\MySqlRoleProvider

    如果上述操作都正常进行,那么就已经成功了一大半了

 

9、进入MySql的 WorkBench里,看你刚才穿件的数据库,你会发现原来空的数据库,现在多了一系列的表,如下图:

                                     7

 

10、创建一个role,步骤:

       回到Security选显卡,点击roles栏目中的Enable Roles链接,这时候会出现Create or Manage roles,点击进去创建一个role。

 

11、创建角色,步骤:

      回到Security选项卡,点击Users栏目中的Create User,进入并创建一个user

 

12、回到你在MySql种创建的数据库,你可以看到Role、user表都多了一条数据。

 

 

如有哪里不清晰,提供一下连个链接,可供参考:

http://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-asp-roles.html

http://www.codeproject.com/Articles/117157/Setting-up-MySql-Membership-with-Visual-Studio-201?msg=4732628#xx4732628xx

posted on 2014-01-22 18:53  Creater  阅读(875)  评论(0编辑  收藏  举报

导航