自从我使用ASP.NET身份验证完成任何认真的工作以来已经有一段时间了,我有点生锈。特别是现在,ASP.NET Identity已成为现实。我希望我可以解释自己在做什么,并且有人可以告诉我为什么以及在哪里我的假设是错误的,或者如果它们不是错误的。
我正在构建的应用程序将符合HIPAA,因此我无法在数据库中存储任何个人身份信息。因此,我花了一些时间研究ASP.NET Identity的工作方式,注意诸如ApplicationUser(继承自IdentityUser)和ApplicationDbContext(继承自IdentityDbContext)之类的东西。我读了几篇MSDN文章等等。
然后,我注意到IdentityDbContext似乎与数据库中的AspNetUsers表相关。然后,我在AspNetUsers表中注意到一些与我有关的事情,因为我编写的应用程序无法存储任何可个人识别的内容:Email和PhoneNumber列。
所以我想删除那些。我稍微看了一下,发现AspNetUsers表映射到IdentityDbContext的DbSet属性(请参见此处)。TUser是ApplicationUser,它继承自IdentityUser。而IdentityUser有电子邮件(见这里)。
所以……毕竟……我的问题是:如果我想创建自己的AspNetUsers版本而没有电话号码/电子邮件地址等,则必须创建自己的IUser实现来代替IdentityUser,正确的?
那么,我是否有遇到任何特殊的问题,还是应该做的很简单?我是否只想从数据库中删除电子邮件,从而破坏了很多预先编写的代码?
就我个人而言,对于任何与用户身份相关的基本类来说,Email属性似乎都是不合理的-尤其是在吹捧ASP.NET Identity具有高度灵活性的情况下(让人们添加对我来说更合理)将其自己的Email属性添加到自动生成的ApplicationUser类)。
对于我可能会写任何内容的专栏文章,我这么担心似乎很愚蠢,但是对于曾经不得不处理HIPAA规定的任何人来说,它都可能使您的内心产生偏执(并想尽一切可能清除掉所有内容)甚至可能被误认为保留个人信息)。
摆脱电话号码应该不会有问题。删除电子邮件字段将是一个更大的麻烦,因为框架使用了该字段。
我将实现自己的IUserStore
(以及所有相关的)类。请查看此帖子以获取初步指导:http : //odetocode.com/blogs/scott/archive/2014/01/20/implementing-asp-net-identity.aspx
然后获取其身份源代码,UserStore
并删除所有需要显示电子邮件的位。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句