源码在这里:https://github.com/darrenji/UseIdentityCRUDUserInMVC,本地下载 在VS2013中创建一个MVC项目,用默认的无身份验证作为身份验证机制。 通过控制台下载Bootstrap。 Install-Package -version 3.0.
源码在这里:https://github.com/darrenji/UseIdentityCRUDUserInMVC,本地下载 在VS2013中创建一个MVC项目,用默认的"无身份验证"作为身份验证机制。 通过控制台下载Bootstrap。 Install-Package -version 3.0.3 bootstrap 下载成功后,在解决方案下的Content和Scripts多了该版本的css和js文件。 把创建项目默认HomeController中的所有Action以及/Views/Home下的所有视图删除。 热热身先来做一个简单练习。 在HomeController中的Index方法中,把一个字典传递给视图。
_Layout.cshtml设置如下:
Home/Index.cshtml视图中:
前期准备 分别安装如下组件。
配置Web.config如下:
以上,
在Models文件夹下创建如下类。
在解决方案下创建Infrastructure文件夹。 在Infrastructure文件夹下创建一个上下文类,需要实现IdentityDbContext<>接口。
在Infrastructure文件夹下创建一个管理用户的类,需要继承UserManager<AppUser>类。 还记得,先前在appSettings节点中配置了一个如下方式: <add key="owin:AppStartup" value="WebApplication4.IdentityConfig" /> OWIN需要一个全局启动文件,默认会到项目的顶级命名空间下找IdentityConfig这个类。 那就在App_Start中创建IdentityConfig这个类,这个类在WebApplication4这个命名空间下。
显示用户创建AdminController,现在可以向视图传递所有的用户了,编写如下:
再创建Admin/Index.cshtml类型为IEnumerable<AppUser>的强类型视图。
创建用户在Models文件夹下创建一个视图模型。
在AdminController中添加创建用户相关的方法。
在Admin/Create.cshtml视图页中:
点击"创建"按钮,创建成功返回显示用户页面。 oh, my god,只是配置了一下就有数据了? 数据在哪呢? 点击左上角的"服务器资源管理器",右键"IdentityDb",点击"刷新"。 再打开AspNetUsers表,刚创建的用户赫然在列。 好像还有点欠缺,用户输入密码的时候,总应该有些限制吧。 能想到的,ASP.NET Identity都为我们准备好了。有一个PasswordValidator类就是干这个的。 在Infrastructure文件夹中创建一个PasswordValidator类的继承子类。
然后需要把这个规则告诉UserManager。
再次运行程序,创建用户页面,尝试输入不通过的密码。 不过,关于密码的规则,似乎可以在View Model的验证层面就可以解决掉。 编辑和删除用户在AdminController中增加编辑和删除的部分。
Admin/Edit.cshtml视图。
另外,如果删除失败,跳转到Shared/Error.cshtml视图页。
至此,使用ASP.NET Identy实现对用户的增删改查完毕,ASP.NET Identity真的很好很强大! |
2019-09-10
2019-09-10
2019-10-03
2022-02-21
2022-05-10