C# 返回AspNetUserClaims的所有行-是否获取应用程序中的每个声明?

C# 返回AspNetUserClaims的所有行-是否获取应用程序中的每个声明?,c#,asp.net-mvc,C#,Asp.net Mvc,使用OWIN auth的ASP.NET标识- 我想做以下工作: 用户应该能够创建其首选用户名。电子邮件,虽然索赔,应该是独特的-考虑以下情况。 用户首先在本地注册。用户决定在第二次访问时使用FB或Google登录。通过查看OAUTH,我检索了他们的FB/Google注册电子邮件。 在这一点上,我想: 1.查看该特定电子邮件是否存在索赔。 2.检索与该电子邮件关联的用户ID。 3.在AspNetUserLogins表中为该特定用户及其特定提供者插入新行 这样,除非用户在site/fb/google

使用OWIN auth的ASP.NET标识- 我想做以下工作: 用户应该能够创建其首选用户名。电子邮件,虽然索赔,应该是独特的-考虑以下情况。 用户首先在本地注册。用户决定在第二次访问时使用FB或Google登录。通过查看OAUTH,我检索了他们的FB/Google注册电子邮件。 在这一点上,我想: 1.查看该特定电子邮件是否存在索赔。 2.检索与该电子邮件关联的用户ID。 3.在AspNetUserLogins表中为该特定用户及其特定提供者插入新行

这样,除非用户在site/fb/google上使用了不同的电子邮件,否则他们将能够使用所有3封电子邮件登录同一个用户配置文件

但要做到这一点,我需要以某种方式检索所有索赔。我已经通过ApplicationDbContext和IdentityDbContext尝试了这一点,但还没有找到索赔的映射。只有用户,而且声明似乎与用户相关

是否有办法检索数据库中的所有索赔?或者有人可以建议我用另一种更方便的方式来做这件事。

更新

我解决这个问题的方法是在我的项目中添加一个新的模型项,该模型项映射到索赔表并查询该表。
也许不是最干净的解决方案,但似乎效果不错

为什么不直接使用电子邮件地址作为用户名呢?这就是我要做的,当有人登录Facebook时,我会对照现有用户检查电子邮件地址,例如,如果Facebook的电子邮件匹配,他们就会链接在一起。我认为根本不需要其他视图。我希望我的用户能够选择他们认为合适的登录名:AspNet.Identity v2在用户表中包含一个电子邮件列。你可以用这个…我没见过,我在索赔表上只见过一个。但我在ApplicationUser中附加了一个电子邮件属性,这就是我最后所做的:谢谢你的评论。