Facebook 如何在新的Microsoft标识系统中查询ASPNetUserLogins表?
在一个新网站上,我允许人们使用本地帐户注册(即,他们在我的网站上填写一张表格,列出他们的信息,或者他们可以使用Facebook/Twitter登录,等等)。当他们使用Facebook或Twitter登录时,会将一条记录添加到ASPNetUserLogins表中,以供参考Facebook 如何在新的Microsoft标识系统中查询ASPNetUserLogins表?,facebook,asp.net-mvc-5,asp.net-identity,Facebook,Asp.net Mvc 5,Asp.net Identity,在一个新网站上,我允许人们使用本地帐户注册(即,他们在我的网站上填写一张表格,列出他们的信息,或者他们可以使用Facebook/Twitter登录,等等)。当他们使用Facebook或Twitter登录时,会将一条记录添加到ASPNetUserLogins表中,以供参考 UserID LoginProvider ProviderKey UserID对应于ASPNetUsers表中的ID,登录提供者只说“Twitter”或“Facebook”,ProviderKey是Facebook或Twitt
UserID
LoginProvider
ProviderKey
UserID对应于ASPNetUsers表中的ID,登录提供者只说“Twitter”或“Facebook”,ProviderKey是Facebook或Twitter的ID号。当使用Facebook MVC模板时,UserID是Facebook ID,这是提供者密钥
我的问题-如何使用提供者密钥查询ASPNetUserLogins表
我希望能够从ASPNetUserLogin表中获取用户ID,并且我有ProviderKey,这样就有了唯一的密钥-但是在新的标识系统中似乎无法访问ASPNetUsers表。您想调用:
public virtual Task<TUser> FindAsync(UserLoginInfo login)
公共虚拟任务FindAsync(用户登录信息登录)
并使用providerKey和loginProvider构造UserLoginInfo。奇怪的是,我尝试了这种方法,但得到了错误“无法将类型为'System.Data.SqlClient.SqlDataReader'的对象强制转换为类型'Spile.Ado.AlternateType.GlimpseDbDataReader'。"即使在我卸载Spile并重新启动Visual Studio后,UserLoginInfo仍被密封,这可能会导致dynamic proxiesHurm出现问题-它会这样-知道如何绕过该限制吗?扩展UserManager并提供另一个类似的方法,将这两个字符串直接输入到用户存储中?我猜-似乎这里应该有一些简单而优雅的方式来获取信息——但似乎没有。