我有一个现有的 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.real
m 参数,您可以使用 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(使用前将#替换为@)