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