当前位置: 首页 > news >正文

室内设计相关网站百度站长平台验证网站

室内设计相关网站,百度站长平台验证网站,网站建设方案实验报告,网站快速排名的方法一.概述 ASP.NET Core Identity提供了一个框架#xff0c;用于管理和存储在 ASP.NET Core 应用中的用户帐户。 Identity添加到项目时单个用户帐户选择作为身份验证机制。 默认情况下#xff0c;Identity可以使用的 Entity Framework (EF) Core 数据模型。 本文介绍如何自定义…一.概述   ASP.NET Core Identity提供了一个框架用于管理和存储在 ASP.NET Core 应用中的用户帐户。 Identity添加到项目时单个用户帐户选择作为身份验证机制。 默认情况下Identity可以使用的 Entity Framework (EF) Core 数据模型。 本文介绍如何自定义的身份标识模型。     1.1 下面是已经存在的身份模型, 由以下实体类型组成: 实体类型 说明 关系 Users(用户表)登录用户  Roles (角色表) 角色   UserClaims(用户声明表)用户拥有的权限每个Users有多个UserClaimsUserTokens用户的身份验证令牌每个Users有多个UserTokensUserLogins将用户与登录相关联。每个Users有多个UserLoginsRoleClaims(角色声明表)角色拥有的权限每个Roles有多个RoleClaimsUserRoles用户和角色关联每个Users有多个Roles    (1) Users 表 字段名称 字段类型 描述 IdGuid主键默认是GuidUserNameNvarchar(256)用户名或邮箱NormalizedUserNameNvarchar(256)规范化用户名转成了大写EmailNvarchar(256)邮箱NormalizedEmailNvarchar(256)规范化邮箱名转成了大写EmailConfirmedbit验证邮件确认默认为falsePasswordHashNvarchar(max)密码哈希SecurityStampNvarchar(max)安全标记Guid类型用户凭据更改时生成随机值如更改用户名ConcurrencyStampNvarchar(max)同步标记Guid类型PhoneNumberNvarchar(max)电话PhoneNumberConfirmedbit电话确认TwoFactorEnabledbit双因子验证LockoutEnddatetimeoffset(7)锁定的到期日期,null表示没有锁定LockoutEnabledbit是否可以被锁定AccessFailedCountint登陆失败的次数, 确定是否锁定用户       1.2 默认模型的配置     Identity定义了许多从DbContext继承以配置和使用模型的上下文类此配置是使用上下文类的OnModelCreating方法中的EF Core Code First Fluent API完成的。默认模型结构可以查看Migration文件以及查看模型关系ModelSnapshot文件但要修改模型不在这里更改。下面是AspNetUsers模型代码     下面是默认模型生成的数据表以及关系     二.模型自定义    在EF上下文中当重写OnModelCreating方法时base.OnModelCreating方法首先调用; 接下来重写的会覆盖默认模型配置。 public class ApplicationDbContext : IdentityDbContextWebAppIdentityDemoUser{public ApplicationDbContext(DbContextOptionsApplicationDbContext options): base(options){}protected override void OnModelCreating(ModelBuilder builder){base.OnModelCreating(builder);// Customize the ASP.NET Core Identity model and override the defaults if needed.// For example, you can rename the ASP.NET Core Identity table names and more.// Add your customizations after calling base.OnModelCreating(builder);}}       2.1 自定义用户数据      在上篇有讲过自定义用户数据这里在总结下。自定义用户数据支持通过继承IdentityUser类。 自定义类命名约定 {Application}User。 //定义{Application}User扩展类实现用户模型public class WebAppIdentityDemoUser : IdentityUser//使用{Application}User作为上下文的泛型参数的类型public class ApplicationDbContext : IdentityDbContextWebAppIdentityDemoUser//更新Startup.ConfigureServices以使用新{Application}User类最后生成迁移同步数据库。services.AddDefaultIdentityWebAppIdentityDemoUser().AddDefaultUI().AddEntityFrameworkStoresApplicationDbContext();     2.2 更改主键类型        在创建数据库之后更改PK列的数据类型在许多数据库系统上都存在问题。更改PK通常涉及删除和重新创建表。因此在创建数据库时应在初始迁移中指定PK类型。下面是更改主键类型步骤      (1) 删除数据库命令如下      Drop-Database     (2) 移除之前生成的迁移命令如下      Remove-Migration     (3) 修改user,role表主键类型以及相关代码改动 // 用户表设置主键为Intpublic class WebAppIdentityDemoUser : IdentityUserint{/// summary/// Full name/// /summary[PersonalData]public string Name { get; set; }/// summary/// Birth Date/// /summary[PersonalData]public DateTime DOB { get; set; }}// 角色表设置主键为Intpublic class WebAppIdentityDemoRole : IdentityRoleint{}      (4) 修改上下文     public class ApplicationDbContext : IdentityDbContextWebAppIdentityDemoUser, WebAppIdentityDemoRole,int     (5) 修改服务注册   services.AddIdentityWebAppIdentityDemoUser, WebAppIdentityDemoRole()//如果使用Identity scaffolder将Identity文件添加到项目中请删除对该项目的调用AddDefaultUI//.AddDefaultUI().AddEntityFrameworkStoresApplicationDbContext().AddDefaultTokenProviders();     (6) 生成迁移代码命令如下    Add-Migration IdentitySchema     (7) 同步数据库   Update-Database IdentitySchema     此时表的主键类型已修改完成包括关系表的外键类型也同步更新了如下图所示      2.3 添加导航属性      导航属性仅存在于EF模型中而不存在于数据库中如果导航关系没有改变模型更改不需要更新数据库。如果更改关系的模型配置可能比进行其他更改更困难。必须注意取代现有的关系。下面示例是不改变模型关系只是在user模型上添加导航属性以及在上下文中指定关系 public class WebAppIdentityDemoUser : IdentityUserint{/// summary/// Full name/// /summary[PersonalData]public string Name { get; set; }/// summary/// Birth Date/// /summary[PersonalData]public DateTime DOB { get; set; }//定义导航属性public virtual ICollectionIdentityUserClaimint Claims { get; set; }} protected override void OnModelCreating(ModelBuilder builder){base.OnModelCreating(builder);// Customize the ASP.NET Core Identity model and override the defaults if needed.// For example, you can rename the ASP.NET Core Identity table names and more.// Add your customizations after calling base.OnModelCreating(builder);builder.EntityWebAppIdentityDemoUser(b {// Each User can have many UserClaimsb.HasMany(e e.Claims).WithOne().HasForeignKey(uc uc.UserId).IsRequired();});}     对于所有用户导航属性, 用户和角色导航属性添加所有导航属性。参考官网文档。     2.4  更改表/列名称,字段长度(上下文中更改)        protected override void OnModelCreating(ModelBuilder builder){base.OnModelCreating(builder);//更改表名称builder.EntityIdentityUser(b {b.ToTable(MyUsers);});//更改表字段名称builder.EntityIdentityUserClaimstring(b {b.Property(e e.ClaimType).HasColumnName(CType);b.Property(e e.ClaimValue).HasColumnName(CValue);});//更改长度builder.EntityIdentityUser(b {b.Property(u u.UserName).HasMaxLength(128);}); }      参考文献     自定义Identity  转载于:https://www.cnblogs.com/MrHSR/p/10593987.html
http://www.zqtcl.cn/news/911181/

相关文章:

  • 福州个人建站模板有没有一些有试卷做的网站
  • 教你如何建设网站阿里去旺道seo优化
  • 想做一个个人网站怎么做网站组成部分
  • 旅游门户网站模板下载全国最新产品代理商
  • 老河口网站设计中企动力科技做什么的
  • 如何建立网站管理系统甘孜州住房和城乡规划建设局网站
  • 阿里网站建设新闻门户网站什么意思
  • 桂林微信网站wordpress 连接信息
  • 电商网站开发简历跨境电商怎么搞
  • php小型网站开发百度知道小程序
  • 风铃网站具体是做那方面的contact form7 v2.1.2 wordpress
  • 临沂网站建设举措网站数据不变重新安装wordpress
  • 外贸网站建设双语网站建设红色大气网络公司企业网站源码_适合广告设计
  • 温州哪里有做网站的阳朔到桂林机场
  • 商务网站建设详细流程小程序商城服务好的商家
  • 苏州建站模板搭建南京地铁最新消息
  • wordpress建网站教程威海建设招聘信息网站
  • 如何制作一网站企业中标信息查询网
  • 百度推广咨询seo搜索引擎优化平台
  • 建设网站要不要投资钱哪里建设网站最好
  • 长沙网站制作公司地址农业推广作业
  • 网站创意设计公司定制网站开发价格
  • 专业网站建设加盟合作怀化seo快速排名
  • 房山区网站建设wordpress自动采集翻译插件怎么用
  • 郴州做网站 郴网互联网站制作公司起名
  • 织梦做的的网站首页显示空白查企业营业执照的网站
  • 葫芦岛公司做网站外贸西班牙语网站建设
  • 广西住房和城乡建设厅培训中心网站首页wordpress建导航
  • 企业建立网站需要提供什么建立网站需要多长钱
  • 科技企业网站源码下载网页设计公司哪家效果好