当前位置: 首页 > 编程语言 > C#

ASP.NET标识从AspNetUsers表中删除列分享

时间:2023-04-11 03:22:07 C#

C#学习教程:ASP.NETIdentityRemoveColumnfromAspNetUsersTable我不需要存储具有空值的多个列。我只需要列Id、SecurityStamp和UserName。我只在这里找到帖子:AspNetIdentity2.0EmailandUsernameDuplication,但仍然没有找到(由于Santosh的评论有误)。那么谁能告诉我如何解决这个问题?编辑:甚至可以删除其中一些列/属性吗?谢谢简短的回答是否定的,不是没有滚动你自己的实现。或者您可以等待他们在codeplex上开源asp.netidentity。谁知道需要多长时间。默认实现包括所有未使用的列(见下文)。//摘要://默认EntityFrameworkIUser实现////类型参数://TKey:////TLogin:////TRole:////TClaim:公共类IdentityUser:IUser,其中TLogin:Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin其中TRole:Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole其中TClaim:Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim{//摘要://构造函数publicIdentityUser();//摘要://用于记录失败以达到锁定目的publicvirtualintAccessFailedCount{get;放;}////摘要://用户声明的导航属性publicvirtualICollectionClaims{get;}////摘要://电子邮件publicvirtualstringEmail{get;放;}////摘要://如果电子邮件已确认,则为真,默认为假publicvirtualboolEmailConfirmed{get;放;}////摘要://用户ID(主键)publicvirtualTKeyId{get;放;}////摘要://是否为t启用了锁定他的用户publicvirtualboolLockoutEnabled{get;放;}////摘要://锁定结束时的UTC日期时间,过去的任何时间都被视为未//锁定。公共虚拟日期时间?LockoutEndDateUtc{得到;放;}////摘要://用户登录的导航属性publicvirtualICollectionLogins{get;}////摘要://用户密码的加盐/散列形式publicvirtualstringPasswordHash{get;放;}////摘要://用户的PhoneNumberpublicvirtualstringPhoneNumber{get;放;}////摘要://如果电话号码已确认,则为真,默认为假publicvirtualboolPhoneNumberConfirmed{get;放;}////摘要://用户角色的导航属性publicvirtualICollectionRoles{get;}////摘要://每当用户凭据更改时应更改的随机值//(密码已更改,登录已删除)公共虚拟字符串SecurityStamp{get;放;}////摘要://是两个因子en为用户启用publicvirtualboolTwoFactorEnabled{get;放;}////摘要://用户名publicvirtualstringUserName{get;放;实际上你可以忽略这些字段,只需在上下文类中配置它们你的实体OnModelCreating:protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder){base.OnModelCreating(modelBuilder);modelBuilder.Entity().Ignore(c=>c.AccessFailedCount).Ignore(c=>c.LockoutEnabled).Ignore(c=>c.LockoutEndDateUtc).Ignore(c=>c.Roles).Ignore(c=>c.TwoFactorEnabled);//等等...modelBuilder.Entity().ToTable("Users");//更改表的名称。您实际上可以在上下文类的OnModelCreating上配置您的实体protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder){modelBuilder.Entity().Ignore(u=>u.AccessFailedCount);//等等...}或者,如果您的应用程序有一个单独的文件(如我所建议的),您可以这样做://等等..}}我知道这可能不完全相关是的,但是如果您只想排除JSON响应中的列,您所要做的就是将[JsonIgnore]放在属性上。我使用实体,因此默认情况下(加密的)密码包含在模型中。即使密码被加密,你仍然不希望最终用户得到密码。下面显示了一种在不将其包含在响应中的情况下保持对该属性的访问的方法。在下面的示例中,密码字段将从Json响应中删除,因为我们将[JsonIgnore]添加到模型中。公共intId{得到;放;}公共字符串电子邮件{得到;放;}[JsonIgnore]公共字符串密码{get;放;}//下面是一个示例JSON响应。以上就是C#学习教程:从AspNetUsers表中删除ASP.NET标识列分享的全部内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——-{"id":1,"email":"ddavis@example.com","firstName":"Daniel","middleName":"Cool-Guy","lastName":"Davis","phoneNumber":"12055550000","active":true}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: