在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
有关MVC框架基础知识请移步=>传智播客,下载相关入门视频耐心看完: 有关微软ASP.NET MVC框架上一版本身份系统知识,请移步=>Jesse Liu的博客参考相关文章: 网上已经有一篇写了一章就太监的教程:
准备工作: 一、先是基本建立工程,三个图完事。 二、请大家下载.NET Reflector反编译工具,这是每个.NET开发人员必备的工具:(这个蛮重要的,很多底层代码一看,上层为什么那么写就完全明白了) 具体破解方法不再赘述,非本文重点,请自行解决。
现在,让我们开始解刨这个看起来很大的框架吧! 一、我列出了在项目自动生成的文件中,需要我们重点关注的类文件(.cs): 1.App_Start文件夹中的: Startup.Auth.cs //这个文件里,只有一个ConfigureAuth方法,此方法在根目录的Startup.cs中被调用。 //在此方法里,你可以调用(app.Use/或其他方法名,貌似是用了Node的命名法)来加载有关身份验证所需要的某些“中间件(middleware)” //微软给了很多例子,比如: //1.配置数据库上下文app.CreatePerOwinContext(ApplicationDbContext.Create); //使用EntityFrameWork Code First 封装数据库的信息,集成很多巨方便的数据操作类库 //2.初始化用户管理器和登录管理器 //app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); //两个createxxx里面封装好的很多方法可直接用来登录,注销,注册,验证邮箱等,很方便 //你去控制器里看其实注册登录只需要一句 await LoginAsync(...)/CreateAsync(...)就行了 //3.还有什么Cookie登录,记住我功能,外站账号登陆等,都是封装好的逻辑方法 //每一个app.Use(...)其实背后都有超多的逻辑代码,每个Use又只做了一件事,充分体现了强大的高内聚松耦合的框架特性! IdentityConfig.cs //这里面有四个类: //前两个是SMS短信和Email服务,非本章重点,略 //后面两个分别是: ApplicationUserManager : UserManager<ApplicationUser> ApplicationSignInManager : SignInManager<ApplicationUser, string> //从名字上可以看出是“用户管理器”和“登录管理器”,其实说白了就是封装了操作Identity数据库的方法+登录用到的方法 //比如异步登录/注册的 LoginAsync(/*paras*/),createAsync(/*paras*/) //比如异步插入+保存数据的InsertAsync(/*paras*/) SaveChanges(); 有的是些EF框架的东西 //后面的文章会反编译这两个类,看看具体的逻辑是什么大家就懂了。 2.Controllers文件夹中的: AccountController.cs //控制器,具体的后文详述 3.Models文件夹中的: IdentityModels.cs //这里面有两个类: ApplicationUser : IdentityUser ApplicationDbContext : IdentityDbContext<ApplicationUser> //前者代表了用户表,后者代表了Identity数据库。 *4.根目录最底下的那个 Startup.cs //这个里面只有一个Configuration(IAppBuilder app)方法 //用自己的app参数调用上面那个Startup.Auth.cs文件里的那个ConfigureAuth(app); //关于Configuration这个方法,简单理解是 “类似C语言中main函数” //网站运行后,框架底层帮助我们封装了程序的信息到app这个对象里,然后传递app到这个Configuration里,开始整个网站的运行。 //我们可以查看一下这个东西里面到底有什么: //它是实现IAppBuilder接口的一个AppBuilder类的实例对象,里面主要是有个字典类的字段,运行后它是这个样子的:
//可以看到是一些host信息及“其他”不明信息,不是本系列的重点,就点到这里。
|
请发表评论