mvc mysql用户管理_(一)用户管理设计:利用MVC5自带identity连接自己的MSSQL数据库...

首先声明,这是我才学MVC5+EF的水平,但网上愿意解答的太少了,而很多所谓的项目,全是成品项目,根本无法看懂。

此实例是以我新人的水平自行研究玩的,肯定有代码的不规范和不简洁,高手请勿喷。同时欢迎打赏呀.

如何创建MVC5项目就跳过了呀。​

一、用Identity使用MSSQL自动生成用户管理系统

要设计项目,用户及权限管理肯定是第一课。按心中的思想,建个表,通过SQL读用户名&&密码是否相等,如相等,存入Session。但在网上查了一下,MVC一直自己在做这个权限管理,肯定比自己的强大,特​别他可以方便的在控制器处进行管理。这个在MVC5中叫Identity。知道其生成5张表,但有二张还不会用。先将步骤如下。

1.表的设计:不用设计,​Identity自动生成。

2.如何与自己的MSSQL进行关联。自动为我生成哩。?

(1)​设置web.config,主要设置连接字符串,我的如下:

MyOAContext"connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=MyOA;User ID=sa;password=js7221511"providerName="System.Data.SqlClient"/>

(2)将Identity的自带的连接字符串进行更改。在Models中的IdentityModels.cs中的连接字符串进行更改

publicApplicationDbContext()

:base("MyOAContext")

{

}

​ ///简单说明一下,在这个CS类文件中:

下面部份可以对User角色字段进行扩展的地方,用于你在注册管理时使用。但我OA是在后台增加用户和角色,所以这步没理他:

public classApplicationUser : IdentityUser

{ }

3.保存,进行测试。然后点击登录。

不要着急,随便输入一个用户名密码,他会提示出错。

然后你点开MSSQL企业登录器一看,YE,有5表自动建好了,这些表原有的字段不要动它。​

fb4477358122b426978c453ab5d442a1.png

4. 但生成后点开用户表,你会发现,其密码是加密的,而且非普通的加密,网上查了下很高级,那么我如何管理哩?下面的这一串就是6个1的加密码所得:

AOGMv8HwY2ECSulhL4wXIX01RgAigbxjUy5LPJp6NSpiKbkc97cvlbFUH27pO0igzQ==

我是通过先注册一个用户名,密码111111,结果成上面的了,哈哈。复制下来,用于以后新增加用户作为初始用户使用。或重置密码。当然这很实用和简单,想研究如何完成这个加解密,我觉得先放在最后最后。

如此,我的自动生成,使用自带的Identity就已完成。同时使用了MSSQL数据库。

二、对Identity生成的表进行扩展。

1.扩展AspNetUsers:​(用户表):这个表最后一个字段,是因为我想一个人只能属于一个唯一的部门,放在这,就少了一个关联表了。

a3dc6d1e8e3d16c0e7150b8bb6a793c4.png

2.然后进行测试:会提示错误,7.APP***contion 数据库上下文发生改变,需要用Code First进行数据库迁移。

然后在网上不停的寻找答案,终于找到如何Code First.老手不要喷,新人就是这样,一个小问题要搞几个小时,这也是我在这以初手的心得来写教程。

在迁改前,先将ROle也一并扩展了,但我想一下,Role表很简单就是ID和名称,就没有扩展。

下面是迁改Cdoe First的步骤:

(1)运行:

Enable-Migrations -Force

将运行后在项目项目资源管理器中会出现Migrations文件夹 类Configuration呈打开状态,将AutomaticMigrationsEnabled值改为true.

PM> Enable-Migrations -Force

正在检查上下文的目标是否为现有数据库...

检测到使用数据库初始值设定项创建的数据库。已搭建与现有数据库对应的迁移“201508310731052_InitialCreate”的基架。若要改用自动迁移,请删除 Migrations 文件夹并重新运行指定了 -EnableAutomaticMigrations 参数的 Enable-Migrations。

已为项目 MyOA 启用 Code First 迁移。

PM> update-database

指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句

没有挂起的显式迁移。

无法将数据库更新为与当前模型匹配,因为存在挂起的更改并且禁用了自动迁移。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。

您可使用 Add-Migration 命令将挂起的模型更改写入基于代码的迁移。

PM> update-database

指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句。

没有挂起的显式迁移。

正在应用自动迁移: 201508310819302_AutomaticMigration。

未应用自动迁移,因为自动迁移会导致数据丢失。如果要在可能导致数据丢失的情况下允许应用自动迁移,请在 DbMigrationsConfiguration 上将 AutomaticMigrationDataLossAllowed 设置为 "true"。也可以将 Update-Database 与 "-Force" 选项一起使用,或者构建基架执行显式迁移。

PM> Add-Migration Initial

正在为迁移“Initial”搭建基架。

此迁移文件的设计器代码包含当前 Code First 模型的快照。在下一次搭建迁移基架时,将使用此快照计算对模型的更改。如果对要包含在此迁移中的模型进行其他更改,则您可通过再次运行“Add-Migration Initial”重新搭建基架。

PM> Update-Database

指定“-Verbose”标志以查看应用于目标数据库的 SQL 语句。

正在应用显式迁移: [201508310822281_Initial]。

正在应用显式迁移: 201508310822281_Initial。

正在运行 Seed 方法。

PM>

3.确定后我进行测试,YE,完成成功了。

然后又测试注册了二个用户名,进行不停的登录,感觉很方便,充分利用MVC5自带的Identity,与MSSQL结合自动生成用户权限管理系统就完成了。

​二、安装项目所需的包:

在工具-序程序管理器-控制台:​

1.安装EF

Install-Package EntityFramework​

2.安装分页

Install-Package PagedList.Mvc​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值