使用Visual Studio 2013 Update 5创建了一个基本的MVC 5应用程序,并选择了Individual User Accounts身份验证选项。我一直在尝试使用模板代码实现社交登录,但一直无法成功。
我已确保所有NuGet包都是最新的,并且代码使用的是MVC 5.2.3;Owin 3.0.1;AspNet.Identity 2.0.0。
我可以让所有东西正常工作,包括使用OtpSharp进行身份验证,但是Facebook登录无论我尝试什么都不起作用。
我已经创建了Facebook App,在其中设置了所有相关选项,并在我的Startup.Auth.cs文件中设置了AppId和AppSecret。
当我尝试使用Facebook登录时,MVC网站会将我重定向到Facebook,提示我输入该应用程序的身份验证屏幕。我点击OK并接受此操作,然后被重定向回MVC应用程序。如果我检查我的Facebook帐户下的已授权应用程序,我的应用程序将列出,并显示它已授予权限向应用程序提取电子邮件地址。
回调函数正常工作,但当它进入
我已确保所有NuGet包都是最新的,并且代码使用的是MVC 5.2.3;Owin 3.0.1;AspNet.Identity 2.0.0。
我可以让所有东西正常工作,包括使用OtpSharp进行身份验证,但是Facebook登录无论我尝试什么都不起作用。
我已经创建了Facebook App,在其中设置了所有相关选项,并在我的Startup.Auth.cs文件中设置了AppId和AppSecret。
当我尝试使用Facebook登录时,MVC网站会将我重定向到Facebook,提示我输入该应用程序的身份验证屏幕。我点击OK并接受此操作,然后被重定向回MVC应用程序。如果我检查我的Facebook帐户下的已授权应用程序,我的应用程序将列出,并显示它已授予权限向应用程序提取电子邮件地址。
回调函数正常工作,但当它进入
ExternalLoginCallback
并执行以下操作时:var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync()
loginInfo
总是返回 null。
查看请求时,显示了 access_denied
的错误:
https://localhost:44301/Account/ExternalLoginCallback?ReturnUrl=%2Fmanage&error=access_denied
我已经阅读了关于这个错误的几乎所有博客文章和SO问题,虽然大部分都很有帮助,但大多数也已过时且不相关。
似乎模板项目缺少某些内容,或者其他地方发生了变化,因为无论我阅读哪个教程并设置哪些选项,结果都是相同的。
我已经在运行IIS Express的开发机器上以及在运行IIS 7.5的托管机器上尝试过这个问题,结果都是一样的。
我甚至反编译了Microsoft.Owin.Security.Facebook库,查看那个查询字符串的特定部分是如何设置的,但没有帮助。
如果我还有头发,现在肯定已经全部拔光了。
我会接受任何建议。有人能帮忙吗?