大多数情况下我们使用.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.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下

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

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

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

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

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

  4. 在Asp.Net MVC 中配置 Serilog

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

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

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

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

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

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

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

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

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

  9. 在 ASP.NET MVC 中充分利用 WebGrid (microsoft 官方示例)

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

随机推荐

  1. MySQL的事件调度器

    自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,可以看作基于时间的触发器. 一.开启 事件调度默认是关闭的,开启可执行 ...

  2. Informatica9.6.1在Linux Red Hat 5.8上安装遇到的有关问题整理_4

    4.创建Integration Service后无法启动 1)错误日志: 2)解决办法: 进入Repository Service的属性页面,将其运行模式改成Normal.

  3. [Java]获取Window界面的标题栏的高度大小

    利用JFrame继承java.awt.Container类的函数getInsets().该函数返回insets类. import java.awt.Insets; import javax.swing ...

  4. Drupal如何实现类的自动加载?

    Drupal通过spl_autoload_register()注册类加载器实现自动加载: function _drupal_bootstrap_database() { // ... .... spl ...

  5. db file sequential read (数据文件顺序读取)

    转载:http://www.dbtan.com/2010/04/db-file-sequential-read.html db file sequential read (数据文件顺序读取): db ...

  6. signal()函数

    转自:http://blog.csdn.net/sddzycnqjn/article/details/7285760 1. 信号概念 信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件) ...

  7. C++ 串

    ♣ string 的基类basic_string中没有虚函数,它无意成为基类.更像是为了处理字符相关的问题而专门提供的一个工具及操作方法.如:想要在一个字符串str1中查找str2,没必要每次都去写K ...

  8. 应用删除后 Launchpad 上仍有应用图标无法删除的解决方法

    应用删除后 Launchpad 上仍有应用图标上带有问号且无法删除时,可以将 launchpad 重置. 在终端输入: defaults write com.apple.dock ResetLaunc ...

  9. jquery获取显示器,屏幕的宽度,和高度

    Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.b ...

  10. c++builder 代码输入助手

    c++builder 代码输入助手 指针箭头.指针符号-> 输入太麻烦 java.c#.delphi 语音,输入. 一个字符,就可以弹出代码提示窗口.很是方便. c++,输入->,需要按3 ...