在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文件:
对文件进行修改:在文件中control-f,查找到
MySQLMembershipProvider,为其添加属性autogenerateschema="true",另外不要忘记,将MySql.Web的版本Version改成你自己添加引用时候的版本,记住属性connectionStringName="LocalMySqlServer",后面会用到,改后如下图:
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,这个时候很可能会报错,因外刚才所有的配置都体现在这边了,如果报错,仔细看它的错误信息,一般会得到比较好的线索。如果成功就会看到这样的界面:
8、进入Security选项卡,
点击页面的 Select authentication type 链接,选择From the internet方式,回到Security的初始页面,
进入Provider选显卡,选择MySqlMemberShipProvider\MySqlRoleProvider
如果上述操作都正常进行,那么就已经成功了一大半了
9、进入MySql的 WorkBench里,看你刚才穿件的数据库,你会发现原来空的数据库,现在多了一系列的表,如下图:
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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。