在ASP.NET Identity中,aspnetuserlogins表用于将用户帐户与外部登录提供程序(如Facebook、Google)中的登录信息关联起来。
这个表包含以下列:
因此,ProviderKey是外部登录提供程序使用的唯一标识符,用于将用户在外部提供程序中的身份验证信息与在ASP.NET Identity中的用户帐户进行匹配。
下面是一个示例,演示如何在ASP.NET MVC 5应用程序中使用Facebook身份验证:
//在Startup.Auth.cs文件中 app.UseFacebookAuthentication(new FacebookAuthenticationOptions { AppId = "your-app-id", AppSecret = "your-app-secret", CallbackPath = new PathString("/Account/ExternalLoginCallback"), Provider = new FacebookAuthenticationProvider { OnAuthenticated = async context => { context.Identity.AddClaim(new Claim("FacebookAccessToken", context.AccessToken)); foreach (var claim in context.User) { var claimType = string.Format("urn:facebook:{0}", claim.Key); string claimValue = claim.Value.ToString(); if (!context.Identity.HasClaim(claimType, claimValue)) context.Identity.AddClaim(new Claim(claimType, claimValue, "XmlSchemaString", "Facebook")); } } } });
在上面的示例中,ProviderKey包含Facebook用户的ID。在成功授权之后,Facebook身份验证提供程序将用户信息返回给您的应用程序,并且ASP.NET Identity将此信息与用户帐户关联起来。