在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
在MySql中实现MemberShip的权限管理的更多相关文章
- MySQL中的账号与权限管理
MySQL权限管理 权限系统的工作原理 MySQL权限系统通过下面两个阶段进行认证: (1)对连接的用户进行身份认证,合法的用户通过认证.不合法的用户拒绝连接. (2)对通过认 ...
- Mysql数据库用户及用户权限管理,Navicat设置用户权限
Mysql数据库用户及用户权限管理,Navicat设置用户权限 一.Mysql数据库的权限 1.1 mysql数据库用户权限级别 1.2 mysql数据库用户权限 1.3 存放用户权限表的说明 二.用 ...
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- mysql用户授权、数据库权限管理、sql语法详解
mysql用户授权.数据库权限管理.sql语法详解 —— NiceCui 某个数据库所有的权限 ALL 后面+ PRIVILEGES SQL 某个数据库 特定的权限SQL mysql 授权语法 SQL ...
- Yii框架中使用SRBAC作为权限管理模块时遇到的问题
Yii框架中使用SRBAC作为权限管理模块时遇到的问题 看到Yii中提供RBAC的插件,SRBAC,就想用用. 结果按照手册上的安装办法,整来整去,安装完了,可就是进不了权限管理界面. 最后想到, ...
- HDFS、Yarn、Hive…MRS中使用Ranger实现权限管理全栈式实践
摘要:Ranger为组件提供基于PBAC的鉴权插件,供组件服务端运行,目前支持Ranger鉴权的组件有HDFS.Yarn.Hive.HBase.Kafka.Storm和Spark2x,后续会支持更多组 ...
- MySQL学习笔记二:权限管理
1. 创建和删除用户,mysql中的用户是由用户名和主机名来确定的 create user "user_name@host_name" identified by passwd; ...
- ci中简单实用的权限管理
实用的权限管理 对多数网站来说,使用完整的rbac权限管理杀鸡用牛刀绝对的吃力不讨好,因为我们只是简单分角色然后对角色进行管理行使其相对于的角色赋予的权限; 在实际的开发中用位运算来对权限进行验证是十 ...
- MySQL中创建用户分配权限
测试环境:CentOS6.8 和 MySQL5.5.4 一 需求 在项目开发的过程中可能需要开放自己的数据库给别人,但是出于安全的考虑,不能同时开放自己服务器里的其他数据库.那么可以新建一个用户,赋予 ...
随机推荐
- SQLserver查询数据类型为ntext是空或NULL值的方法
--为空的值text ntext select * from lf_newsNg_utf where datalength(newsContentE)=0 or datalength(newsCont ...
- base64这种编码的意义
BASE64不是用来加密的.你看看经过BASE64编码后的字符串,全部都是由标准键盘上面的常规字符组成,这样编码后的字符串在网关之间传递不会产生UNICODE字符串不能识别或者丢失的现象.你再仔细研究 ...
- IT资源专业搜索-www.easysoo.cn
创始人:samrthhl 时间:2015-11-8 关于易搜 易搜(www.easysoo.cn)是一个面向IT开发从业人员的专业资源搜索站点,它将全球的知名博客论坛.专业IT行业站点.知名咨询机构和 ...
- 转:用JS判断IE浏览器的版本(-- 很巧妙实用的方法)
~~在看到这篇文章之前如果让我来判断IE的版本,那么我基本上会用 navigator.userAgent去做字符串检索,现在觉得特性检测的确比较靠谱一点 今天一个项目中需要判断IE版本号,又因为 jQ ...
- 关于map
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap. Map主要用于存储健值对, ...
- volley源代码解析(七)--终于目的之Response<T>
在上篇文章中,我们终于通过网络,获取到了HttpResponse对象 HttpResponse是android包里面的一个类.然后为了更高的扩展性,我们在BasicNetwork类里面看到.Volle ...
- jquery的slideUp、slideDown、slideToggle等涉及滑动效果的一系列函数,在IE浏览器下有几处bug
jquery的slideUp.slideDown.slideToggle等涉及滑动效果的一系列函数,在IE浏览器下有几处bug: 1. 因position引起的问题 影响:IE全系列 症状:在需要sl ...
- Activity跳转
本例中MainActivity为:FirstActivity.java FirstActivity如下: package com.wyl.intentmultiactivitytest; import ...
- php 学习笔记 数组1
1.一般情况下$name['tom']和$name[tom]是相同的:但没有引号的键不能和常量区别开,如:define('index', 5)时:$name['tom']和$name[tom]不同 2 ...
- {key}面向对象程序设计-C++ polymorphism 【第十三次上课笔记】
Peronal Link: http://segmentfault.com/a/1190000002464822 这节课讲了本门课程 面向对象程序设计中最为重要的一个部分 - 多态 /******** ...