相关疑难解决方法(0)

ASP.NET MVC 5(VS2013 final):使用OWIN登录Facebook失败(loginInfo为null)

我安装了昨天发布的VS2013最终位,我正试图在我启用外部Facebook登录的地方工作.我的第一个问题:

在这个控制器代码中(我没有触摸并保留原样来自示例模板):

    //
    // GET: /Account/ExternalLoginCallback
    [AllowAnonymous]
    public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
    {
        var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
        if (loginInfo == null)
        {
            return RedirectToAction("Login");
        }
Run Code Online (Sandbox Code Playgroud)

我在行上设置断点等待AuthenticationManager.GetExternalLoginInfoAsync().代码返回(在我登录Facebook之后),"loginInfo"为null.在UI中,继续显示登录页面,不做任何更改.我该怎么调试呢?我试图找到GetExternalLoginInfoAsync()内部的代码,但根据这个线程:

Asp.Net Identity RTM版本中的Microsoft.AspNet.Identity.Owin.AuthenticationManager在哪里?

AuthenticationManager现在已经不存在了.(上面似乎并非如此.)

我的第二个问题:是否有其他人能够使用Facebook登录而不更改ASP.NET MVC5示例代码(除了取消注释app.UseFacebookAuthentication并填写您的FB应用程序详细信息)?(您必须使用Facebook配置别名主机,例如"localtest.me",并使用IIS express配置它.)

谢谢你的帮助...

-ben

asp.net owin asp.net-identity

10
推荐指数
2
解决办法
2万
查看次数

Facebook成功登录后,ExternalLoginConfirmation返回null

在MVC 5模板中实现Facebook登录,已添加了应用ID和密码。

最初登录失败,因为它返回null

public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
    // Crashes on this line
    var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
    if (loginInfo == null)
    {
        return RedirectToAction("Login");
    }
}
Run Code Online (Sandbox Code Playgroud)

搜索后遇到一个解决方案,该解决方案说用此替换现有的ExternalLoginCallback方法

[AllowAnonymous]
    public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
    {
        var result = await AuthenticationManager.AuthenticateAsync(DefaultAuthenticationTypes.ExternalCookie);
        if (result == null || result.Identity == null)
        {
            return RedirectToAction("Login");
        }

        var idClaim = result.Identity.FindFirst(ClaimTypes.NameIdentifier);
        if (idClaim == null)
        {
            return RedirectToAction("Login");
        }

        var login = new UserLoginInfo(idClaim.Issuer, idClaim.Value);
        var name = result.Identity.Name == null ? "" : …
Run Code Online (Sandbox Code Playgroud)

c# facebook asp.net-mvc-5

1
推荐指数
1
解决办法
3044
查看次数

标签 统计

asp.net ×1

asp.net-identity ×1

asp.net-mvc-5 ×1

c# ×1

facebook ×1

owin ×1