无法仅在.net中的初始注册和外部登录确认时检索facebook令牌
我的.net应用程序在facebook上发布了一张照片。在初次登录和注册之后,它在以后的每次使用中都能正常工作。用户除了使用facebook登录外,不能以任何其他方式注册或登录 在所有登录上(除第一次登录外),用户登录并调用externallogincallback方法,然后调用StoreFacebookAuthToken和SignInAsync方法并存储令牌,这样就可以了 但在第一次登录和注册时,用户单击facebook登录->用户输入一个电子邮件地址以与fb帐户关联,然后调用ExternalLoginConfirmation 为了在初次登录时获得facebook令牌,我将StoreFacebookAuthToken和SignanAsync放入ExternalLoginConfirmation中,但随后我无法发布照片-我假设访问令牌未被存储,但我无法确切找出原因 我还没有发布所有的代码b/c,它相当长,但任何想法都将是伟大的。Thx Startup.auth.cs无法仅在.net中的初始注册和外部登录确认时检索facebook令牌,.net,facebook,.net,Facebook,我的.net应用程序在facebook上发布了一张照片。在初次登录和注册之后,它在以后的每次使用中都能正常工作。用户除了使用facebook登录外,不能以任何其他方式注册或登录 在所有登录上(除第一次登录外),用户登录并调用externallogincallback方法,然后调用StoreFacebookAuthToken和SignInAsync方法并存储令牌,这样就可以了 但在第一次登录和注册时,用户单击facebook登录->用户输入一个电子邮件地址以与fb帐户关联,然后调用External
var facebookOptions = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationOptions
{
AppId = ConfigurationManager.AppSettings["Facebook_AppId"],
AppSecret = ConfigurationManager.AppSettings["Facebook_AppSecret"],
SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
SendAppSecretProof = true
};
ExternalLoginCallBack
public ExternalLoginCallback(string returnUrl)
{
case SignInStatus.Success:
var user = await UserManager.FindAsync(loginInfo.Login);
if (user != null)
{
await StoreFacebookAuthToken(user);
await SignInAsync(user, isPersistent: false);
}
return RedirectToAction("Upload", "Home");
}
}
外部登录确认
public ExternalLoginConfirmation
{
if (result.Succeeded)
{
result = await UserManager.AddLoginAsync(user.Id, info.Login);
if (result.Succeeded)
{
// await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
await StoreFacebookAuthToken(user);
await SignInAsync(user, isPersistent: false);
return RedirectToAction("Upload", "Home");
}
}
我把问题解决了。你介意把答案贴在这里吗?这可以帮助其他开发者更新原始帖子。你能回复原始帖子吗?它会更干净。实际上我没有确切的答案。老实说,我甚至不知道它是如何让我发布照片的,因为我从来没有能够从控制器获得fb访问令牌。这是我仍在努力解决的问题。我不知道如何从索赔中获得fb代币:CheersI解决了这个问题。你介意将解决方案发布在这里作为答案吗?这可以帮助其他开发者更新原始帖子。你能回复原始帖子吗?它会更干净。实际上我没有确切的答案。老实说,我甚至不知道它是如何让我发布照片的,因为我从来没有能够从控制器获得fb访问令牌。这是我仍在努力解决的问题。我不知道如何从声明中获得fb代币:干杯