Asp.net身份Google帐户ID从openId迁移到oauth

2024-02-25

我有一个现有的 asp.net mvc5 应用程序,使用 DotNetOpenAuth 进行 Google OpenId 身份验证。 我正在迁移到 Asp.Net Identity,并使用 Google+ Auth 和 OAuth2.0。

但我发现我无法将现有的 OpenId 帐户 Id 映射到 OAuth2.0 Id : - 旧 ID 是:https://www.google.com/accounts/o8/id?id=blablabla https://www.google.com/accounts/o8/id?id=blablabla- 新 ID 是:一长串数字

由于我想使用新的 ID,因此我正在寻求有关迁移身份的帮助。 我还没有找到一个简单的示例来实现这一点。

我正在使用新的 asp.net mvc5 应用程序(新搭建的),添加了 Microsoft Identity(带有我的数据的自定义实现),配置了 GoogleOAuth2 提供程序。

当我尝试登录时,惊喜! :) 帐户 ID 已更改...

我读过一些帖子,要求将“openid.realm”添加到身份验证请求中,但是,如何更改身份验证请求 url,以及如何知道要放入其中的值?

Thanks.


更改身份验证请求以包含openid.realm 参数,您可以使用 OnApplyRedirect 委托,例如

app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
{
    ClientId = "",
    ClientSecret = "",
    Provider = new GoogleOAuth2AuthenticationProvider
    {
        OnApplyRedirect = context =>
        {
            Dictionary<string, string> dictionary = new Dictionary<string, string>()
            {
                { "openid.realm", "http://mywebsite.com/openid/realm" }
            };
            var redirectUri = WebUtilities.AddQueryString(context.RedirectUri, dictionary);
            context.Response.Redirect(redirectUri);
        },
    }
});

的价值openid.realm需要是realm http://openid.net/specs/openid-authentication-2_0.html#realms您用于 OpenID 2.0

The 谷歌迁移文档 https://developers.google.com/accounts/docs/OpenID#map-identifiers包含有关如何从用户旧 ID 映射到新 ID 的信息

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Asp.net身份Google帐户ID从openId迁移到oauth 的相关文章

随机推荐