我想检索Facebook的姓名和电子邮件信息并将其插入AspNetUsers表。
这就是为什么我将以下代码片段添加到Start.Auth;
//app.UseFacebookAuthentication(
// appId: WebConfigurationManager.AppSettings["appID"],
// appSecret: WebConfigurationManager.AppSettings["appSecret"]);
var MoreFacebookOptions = new FacebookAuthenticationOptions
{
AppId = WebConfigurationManager.AppSettings["appID"],
AppSecret = WebConfigurationManager.AppSettings["appSecret"]
};
MoreFacebookOptions.Scope.Add("email");
MoreFacebookOptions.Scope.Add("first_name");
MoreFacebookOptions.Scope.Add("middle_name");
MoreFacebookOptions.Scope.Add("last_name");
MoreFacebookOptions.Provider = new FacebookAuthenticationProvider()
{
OnAuthenticated = async context =>
{
context.Identity.AddClaim(new System.Security.Claims.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 System.Security.Claims.Claim(claimType, claimValue, "XmlSchemaString", "Facebook"));
}
}
};
MoreFacebookOptions.SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie;
app.UseFacebookAuthentication(MoreFacebookOptions);
点击Facebook登录按钮后,我将其重定向到(HTTP500网站无法显示页面);
如果我注释掉以下几行;
MoreFacebookOptions.Scope.Add("first_name");
MoreFacebookOptions.Scope.Add("middle_name");
MoreFacebookOptions.Scope.Add("last_name");
一切正常,它会将我重定向到预期的网址;
https://localhost:44302/signin-facebook?code=AQBRSVZjeT8p8OL11cyfXBfQE7Y5rq42Zmt6aNoc4xli6Dmu9BqS_BERY09dT7P4COwSyIcj-8SJgK08jmPG5-sUe3Bl12thCamlhI1moiV-uJ0IcjHQWtiqeC5zzKgOylWmxMTwroHhHutWVLVFMLrhpBg0Xl1NH6LhmYI1MGZIge9qrHn9f4ZXf0s9rLttSUV5c1rJcnMtreDVww27iDgez8sEn2DcIGFsmwlfl4WTsNwg346x1nvrhoHMlEWXmok3SWDf5DREUjiaw6w0v3Uh3prJ_Pe26JdgySCqVEHDfY2O0H2Kql4dM8WQWpnpZpM&state=8eGRtf0oeiwqzS0qHCiWcsz-ZxMA9-DEK9GaTU5UENsi-vnfbaJSsxd57y_BtUF_PhQ9pD7TiYld4bFhytQE4KIACVSokTXfure0XJ5MCUGzoDPtN3ionRxFf2H5K4mu6hmclLvuRr4IPg_7g5InWP9TQZJLefOyQLqu21yOZeE0BnDIUcsP1nrL-dydghS62TrteN_XVk77upIN0L4f2V7jchL3u65l0spZdE337n19nRdB5oJbiBxEVCyKNbkqGF_kRxxs8NCsxSPVdci_Gw#_=_
它的原因是什么?