我安装了昨天发布的VS2013最后一位,我正在尝试一个例子,在那里我启用一个外部的Facebook登录.我的第一个问题:
在这个控制器代码(我没有从示例模板中触摸并保留):
// // GET: /Account/ExternalLoginCallback [AllowAnonymous] public async Task<ActionResult> ExternalLoginCallback(string returnUrl) { var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return RedirectToAction("Login"); }
我在线上设置了一个断点等待AuthenticationManager.GetExternalLoginInfoAsync().代码返回(在我做我的Facebook登录后),“loginInfo”为空.在UI中,登录页面继续显示,不改变.如何调试?我试图找到GetExternalLoginInfoAsync()内的代码,但根据这个线程:
Where is Microsoft.AspNet.Identity.Owin.AuthenticationManager in Asp.Net Identity RTM version?
AuthenticationManager现在已经没了. (以上似乎不是这样).
我的第二个问题是:其他任何人都可以使用Facebook登录,而不改变ASP.NET MVC5示例代码(除了取消注释app.UseFacebookAuthentication并填写您的FB应用程序详细信息)? (您必须使用Facebook配置别名主机,例如“localtest.me”,并使用IIS express配置).
感谢任何帮助…
-ben
解决方法
我在向Google进行身份验证时遇到此问题(OpenID,而不是OAuth).所以真的没有什么可以搞砸的,但是确定在会话变量之后的一些简单的代码变化之后,它已经停止了工作.使用提琴手,我确定Google确实正在返回有效的信息.
有人比我更聪明,想出了我的问题,并在这里描述了修复.
ASP.NET_SessionId + OWIN Cookies do not send to browser
我所要做的只是加入Session [“salt”] =“salt”;到帐号/登录控制器,中提琴神奇地开始工作完美.不知道这是否是你的确切问题,但这是我的.