在ASP.NET中,GetExternalLoginInfoAsync方法返回null的问题通常出现在以下几种情况下:
services.AddAuthentication().AddFacebook(options => {
options.AppId = "your-app-id";
options.AppSecret = "your-app-secret";
});
未正确配置回调URL。在Facebook开发者控制台中,确保回调URL正确设置为http://localhost:port/signin-facebook。此URL应与应用程序中配置的回调URL相匹配。
其他配置问题。确保已经在应用程序中正确配置了身份验证中间件和授权选项。在Startup.cs文件的Configure方法中添加以下代码:
app.UseAuthentication();
同时,确保在AccountController.cs文件的ExternalLoginCallback方法中调用GetExternalLoginInfoAsync方法。以下是一个示例代码:
[HttpGet]
[AllowAnonymous]
public async Task ExternalLoginCallback(string returnUrl = null)
{
var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null)
{
// 处理GetExternalLoginInfoAsync返回null的情况
// ...
}
// 处理登录逻辑
// ...
return View();
}
通过检查和确保这些问题,您应该能够解决GetExternalLoginInfoAsync方法返回null的问题。