Asp.Net Identity Store未实现IUserEmailStore <tuser>

时间:2018-01-25 23:11:19

标签: asp.net-identity-2

我正在探索这个身份框架,在实现Custome UserStore时,无论如何都要摆脱这些,即所谓的可选接口。 根据这个帖子,看起来不像一个选项。 When implementing your own IUserStore, are the "optional" interfaces on the class actually optional?

我在.Net Framework 4.5 MVC5上使用2.2.1版本

1 个答案:

答案 0 :(得分:1)

所以我查看了Asp.Net.Identity汇编代码,这是我的理解。很可能,这对您来说很明显,但仍然分享:

要在 UserManager 上调用 CreateAsync ,默认情况下,我必须实现这些商店界面: IUserStore,IUserPasswordStore,IUserSecurityStampStore,IUserEmailStore,IUserLockoutStore 。在UserManager中,大多数对这些方法的调用都是模板化的。

好消息,大​​多数 UserStore 对这些接口方法的调用在调用之前都有一个条件,我们可以在 UserManager 中设置。

例如:在UserManager中设置“RequireUniqueEmail = false”,并且在调用CreateAsync时不会调用IUserEmailStore.GetEmailAsync,您也不必在UserStore上实现它。

我为 CreateAsync 创建了地图,我觉得应该会有所帮助。

enter image description here

  

所以,回答原始问题,如果我们知道我们要做什么   验证(条件),我们只能在UserStore上实现那些接口。