c# - 在现有的mvc中实现google登录

标签 c# asp.net-mvc google-signin

我有一个没有身份(自定义身份验证)的 MVC 项目。但后来我想对其实现 Google 和 Facebook 身份验证。

我为此创建了一个项目,以了解微软如何在 MVC 身份验证中做到这一点。我能够实现其中的一部分。现在我有调用谷歌身份验证页面的按钮,当我选择我的电子邮件登录时出现错误 - Error: redirect_uri_mismatch - 但我强制 URL 与我的 URL 匹配,这有效。

Google 能够在帐户 Controller 中调用我的操作,但是在查看我复制的 MVC 基本代码时,我无法检索有关用户的信息。

这是我在 loginInfo 中返回 null 的方法

    public async Task<ActionResult> LoginWithGoogle(string returnUrl)
    {
        var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

这是 AuthenticationManager

    private IAuthenticationManager AuthenticationManager
    {
        get
        {
            return HttpContext.GetOwinContext().Authentication;
        }
    }

如何从 google 身份验证中获取信息?我可以通过 javascript 执行此操作,但我想仅使用 C# 执行此操作。

提前致谢。

最佳答案

我最近创建了自定义谷歌登录项目。我正在使用 Claims 来存储用户详细信息,但您可以使用您的自定义逻辑。

请在 GitHub 上找到它。有详细步骤。

https://github.com/kishancool11/GoogleLoginMVC

您可以使用 LoginWithGoogle 代替 GoogleLoginCallback。

关于c# - 在现有的mvc中实现google登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862357/

相关文章:

c# - 错误 : Additional information: External table is not in the expected format

c# - 强制转换为通用接口(interface)返回 null

c# - @Html.Action 正在从部分 View 镜像我的网站,而不引用布局页面?

c# - ASP.NET MVC RSS 提要日期时间格式

asp.net-mvc - 可以在生产中使用 ASP.NET MVC 吗?

c# - MVC 4 Viewmodel 无法在回发时进行数据绑定(bind)

c# - 在应用程序服务中将域实体作为参数发送或将实体 ID 作为参数发送

react-native - React Native google 登录正在请求 google 驱动器权限

javascript - 为谷歌登录按钮使用自定义图像

swift - Google 登录委托(delegate)没有被调用