Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 被ASP.NET标识和IdentityDbContext弄糊涂了_Asp.net Mvc_Asp.net Identity_Asp.net Identity 2 - Fatal编程技术网

Asp.net mvc 被ASP.NET标识和IdentityDbContext弄糊涂了

Asp.net mvc 被ASP.NET标识和IdentityDbContext弄糊涂了,asp.net-mvc,asp.net-identity,asp.net-identity-2,Asp.net Mvc,Asp.net Identity,Asp.net Identity 2,我已经有一段时间没有认真使用ASP.NET身份验证了,我有点生疏了。尤其是现在ASP.NET身份是最重要的。我希望我能解释我在做什么,让别人告诉我为什么,我的假设哪里是错的,或者它们是否是错的 我正在构建的应用程序将符合HIPAA,因此我无法在数据库中存储任何个人身份信息。因此,我花了一些时间研究ASP.NET Identity是如何工作的,注意了诸如我的ApplicationUser(从IdentityUser继承)以及ApplicationDbContext(从IdentityDbConte

我已经有一段时间没有认真使用ASP.NET身份验证了,我有点生疏了。尤其是现在ASP.NET身份是最重要的。我希望我能解释我在做什么,让别人告诉我为什么,我的假设哪里是错的,或者它们是否是错的

我正在构建的应用程序将符合HIPAA,因此我无法在数据库中存储任何个人身份信息。因此,我花了一些时间研究ASP.NET Identity是如何工作的,注意了诸如我的ApplicationUser(从IdentityUser继承)以及ApplicationDbContext(从IdentityDbContext继承)之类的内容。我读了一些MSDN的文章等等

然后我注意到IdentityDbContext似乎与数据库中的AspNetUsers表相关联。然后,我注意到AspNetUsers表中有一些与我有关的内容,因为我正在编写一个无法存储任何可识别个人身份的应用程序:电子邮件和电话号码列

所以我想把它们去掉。我仔细查看了一下,发现AspNetUsers表映射到IdentityDbContext的DbSet属性(请参阅)。TUser是ApplicationUser,它继承自IdentityUser。并且IdentityUser有电子邮件(请参阅)

所以…在所有这些之后…我的问题是:如果我想创建自己版本的AspNetUsers,而不使用电话号码/电子邮件地址等。我必须创建自己的IUser实现来代替IdentityUser,对吗

那么,我在做这件事时会遇到什么特别的哥特哈斯,或者这应该是一项相当简单的任务吗?我是否只想从数据库中删除电子邮件,就要消化掉大量预先编写的代码

就我个人而言,将Email属性作为与用户身份相关的任何基本类的一部分似乎是不合理的——特别是当ASP.NET身份被吹捧为高度灵活的东西时(对我来说,让人们将自己的Email属性添加到自动生成的ApplicationUser类中似乎更合理)


对我来说,为一个我可以写任何东西的专栏担心这么多似乎是愚蠢的,但对于任何曾经处理过HIPAA法规的人来说,这可能会让你内心产生妄想症(并且想尽一切可能删除任何可能被误认为持有个人信息的内容)

丢掉一个电话号码应该不是问题。删除Email字段将是一个更大的痛苦,因为它被框架使用

我将实现自己的
IUserStore
(以及所有相关的)类。有关初步指导,请参阅本帖子:


然后使用他们的
UserStore
,将需要电子邮件出现的所有信息都提取出来。

创建自己的
IUser
实体,而不必为不需要的字段操心。Asp.Net标识的可扩展性如下所示。