// 配置数据库上下文、用户管理器和登录管理器,以便为每个请求使用单个实例 app.CreatePerOwinContext(GDbContext.Create); app.CreatePerOwinContext(() => new UserManager<ApplicationUser>(new UserStore())); // 使应用程序可以使用 Cookie 来存储已登录用户的信息 // 并使用 Cookie 来临时存储有关使用第三方登录提供程序登录的用户的信息 // 配置登录 Cookie app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = ), Provider = new CookieAuthenticationProvider { // 当用户登录时使应用程序可以验证安全戳。 // 这是一项安全功能,当你更改密码或者向帐户添加外部登录名时,将使用此功能。 OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<UserManager<ApplicationUser>, ApplicationUser>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) } });
说起来简单,但真的做起来还是踩过了大大小小的坑,即便是你觉得很不起眼的一个功能,都有可能折腾的你要死要活。
我会告诉你我新建项目、删除项目、再新建、再删除,这个过程已经重复好多遍了吗?
当你看到一段好的代码在你面前时,又有几个人能体会写的人死了多少脑细胞?
我不会拒绝伸手党,但我希望伸手的同时能再点个赞,你的支持是无数同行坚持在这条路上的动力。
声明
1.在出第一个正式版之前不会使用任何开源协议
2.永远免费,不会出什么专业版、旗舰版之类的进行收费
3.第一个版本完结时间目前还不知道,我这个人懒散惯了,但我会尽量多抽出一些时间尽快写出来。
最后,本项目暂定名为 G,唯一群号:7424099
Git地址: (希望大家可以顺手点个star,如果有喜欢的朋友捐赠下就更好了,感谢各位的支持)