gpt4 book ai didi

c# - GetExternalLoginInfoAsync null with OWIN in ExternalLoginCallback 除非已经登录谷歌

转载 作者:太空狗 更新时间:2023-10-29 21:27:44 25 4
gpt4 key购买 nike

我一直在尝试使用 Google 帐户在 MVC5 应用程序中使用 OWIN 实现外部登录。

如果我已经登录到 google,单击我的应用程序中的 google 按钮就可以了,它会在允许我访问登录信息后将我带到我的注册页面。

如果我在单击我的应用程序 google 按钮时尚未登录 google,系统会提示我按预期使用 Google 登录,但回调接收器似乎没有看到我已登录,因为 logininfo 始终是在这种情况下,回调中的 null 如下...

    [AllowAnonymous]
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

if (loginInfo == null)
{
return RedirectToAction("Login");
}

// Code omitted for brevity.
}
}

有没有人有解决方法或解释?这几乎就像在登录到 google 后发出请求之前,OWIN 无法使用外部 cookie。

最佳答案

经过几天的调查,我终于找到了答案。问题似乎是登录谷歌后,它重定向回该站点并且没有登录谷歌的权限,因此被重定向回登录页面。如果已经登录谷歌,不知道为什么会这样。找到这篇文章后我发现了这一点......

http://blog.technovert.com/2014/01/google-openid-integration-issues-asp-net-identity/

我在我的配置文件中添加了以下内容。

<location path="signin-google">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

现在可以了...

关于c# - GetExternalLoginInfoAsync null with OWIN in ExternalLoginCallback 除非已经登录谷歌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23742086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com