首页 > 学院 > 开发设计 > 正文

在MySql中实现MemberShip的权限管理

2019-11-17 03:23:23
字体:
来源:转载
供稿:网友

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表