在ASP.NET MVC中使用MySQL【并使用membership】

时间:2022-11-11 16:40:08
        大多数情况下我们使用.NET或ASP.NET(包括MVC)程序时,我们会同时选择SQL Server 或者SQL Express (其他微软产品)做数据库。但是今天使用MVC已经完全没有必要这么做了,ASP.NET MVC的创建与ASP.NET相似,在.NET中一个核心组件ADO.NET允许我们连接各种不同的数据库,我们只需要一个连接器就可以了。在MYSQL中提供了几种不同的连接器供我们选择,官方广泛接受的MYSQL.NET Connector。
 
          使用官方提供的包我们可以使用完整的功能,需要注意的是我们下载Connector后我们要如何配置web.config来连结我们的ASP.NET MVC程序已经如何使用ASP.NET Mumbership。首先我们先下载MySQL Connector/NET,下载地址:http://dev.mysql.com/downloads/connector/net/  下载好后,我们需要配置我们的web.config文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="DatabaseConnection"
connectionString="Server=localhost;Port=3306;Database=yourdbname;Uid=yourusername;Pwd=yourpassword;"
providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<!-- ... -->
</configuration>
        现在我们就使用DatabaseConnection做为我们的主数据库连接了,按照惯例(Entity Freamwork)我们需要把继承自DbContext的类命名为DatabaseConnection。现在Entity Freamwork就可和MySQL数据库一起工作了。那么我们要如何使用Mumbership呢? 我们需要在web.config中做如下的配置:
<configuration>
<!-- ... --> <system.web>
<!-- ... --> <authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication> <roleManager enabled="true" defaultProvider="MySQLRoleProvider">
<providers>
<clear/>
<add name="MySQLRoleProvider" autogenerateschema="true"
type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.5.4.0,
Culture=neutral, PublicKeyToken=c5687fc88969c44d"
connectionStringName="MarioDB" applicationName="/" />
</providers>
</roleManager> <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="MarioDB" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="false"
requiresUniqueEmail="true" maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership> <!-- ... --->
</system.web>
</configuration>
        这里有一个重要的属性需要注意,如果我们没有设置autogenerateschema 为true的话,我们就要确保我们数据库中已经有包含mumbership和rule的表。这个不是必要的,但是我们后面为什么又要移除他呢?一方面是因为Database User不应该有太多权限,当表以创建好我们就要移除; 另一方面,我们要做额外的检查是否存在这些表,根本没有必要,删除会节省一定的时间。
 

在ASP.NET MVC中使用MySQL【并使用membership】的更多相关文章

  1. ADO&period;NET &period;net core2&period;0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP&period;NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C&num; AutoMapper 了解一下

    ADO.NET   一.ADO.NET概要 ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库 二.ADO.NET的组成 ①System.Data  → DataTable, ...

  2. 2&period;ASP&period;NET MVC 中使用Crystal Report水晶报表

    上一篇,介绍了怎么导出Excel文件,这篇文章介绍在ASP.NET MVC中使用水晶报表. 项目源码下载:https://github.com/caofangsheng93/CrystalReport ...

  3. 关于 ASP&period;NET MVC 中的视图生成

    在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通 ...

  4. 在Asp&period;Net MVC 中配置 Serilog

    Serilog 是一种非常简便记录log 的处理方式,使用Serilog可以生成本地的text文件, 也可以通过 Seq 来在Web界面中查看具体的log内容. 接下来就简单的介绍一下在Asp.Net ...

  5. 如何在 ASP&period;NET MVC 中集成 AngularJS(3)

    今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表 ...

  6. 如何在 ASP&period;NET MVC 中集成 AngularJS(2)

    在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中 ...

  7. 《Entity Framework 6 Recipes》中文翻译系列 &lpar;20&rpar; -----第四章 ASP&period;NET MVC中使用实体框架之在MVC中构建一个CRUD示例

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...

  8. asp&period;net mvc 中 一种简单的 URL 重写

    asp.net mvc 中 一种简单的 URL 重写 Intro 在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化, ...

  9. 在 ASP&period;NET MVC 中充分利用 WebGrid &lpar;microsoft 官方示例&rpar;

    在 ASP.NET MVC 中充分利用 WebGrid https://msdn.microsoft.com/zh-cn/magazine/hh288075.aspx Stuart Leeks 下载代 ...

随机推荐

  1. MongoDB数据实体中的ObjectId序列化成json的一个小坑

    很多时候我们都需要对实体对象进行序列化与反序列化,而ObjectId类型,只能用mongo的驱动以bson格式来序列化,但我们对外的交互,一般是json格式. 有两种解决方案: 1.自己写一个json ...

  2. sql server left 和right 函数

    参考文章:微信公众号文章 一直对sql中的left和right有误解,一直以为它是这样的. 执行这样一句: ) leftNum ) rightNum 出现的结果是这样的: 而我心中这样认为: 我认为只 ...

  3. Centos上搭建基于L2TP的VPN

    1.一些预先准备的环境 yum install -y make gcc gmp-devel xmlto bison flex xmlto libpcap-devel lsof vim-enhanced ...

  4. less sass学习总结(——待续哦——)

    一:less.sass是为了解决什么?  为什么要让css以编程语言来书写呢?

  5. hibernate多SessionFactory配置

    <bean id="aDataSource" class="org.apache.commons.dbcp.BasicDataSource" destro ...

  6. 如何调试libc&plus;&plus;abi&period;dylib handler threw exception错误

    From:http://blog.csdn.net/naruto_ku/article/details/8779203 在进行iOS开发时,偶尔会碰到libc++abi.dylib handler t ...

  7. COJN 0585 800604鸡蛋的硬度

    800604鸡蛋的硬度 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛.参 ...

  8. Twitter分布式自增ID算法snowflake原理解析

    以JAVA为例 Twitter分布式自增ID算法snowflake,生成的是Long类型的id,一个Long类型占8个字节,每个字节占8比特,也就是说一个Long类型占64个比特(0和1). 那么一个 ...

  9. FF D8 FF FE 00 24 47 00转图片

    String[] img = "FF D8 FF FE 00 24 47 00 9D 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 0 ...

  10. mysql的时区错误问题: The server time zone value &&num;39&semi;&&num;214&semi;&&num;208&semi;&&num;185&semi;&&num;250&semi;&&num;177&semi;&&num;234&semi;&&num;215&semi;&&num;188&semi;&&num;202&semi;&&num;177&semi;&&num;188&semi;&&num;228&semi;&&num;39&semi; is unrecognized or represents more than one

    问题:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.. ...