将Web成员身份ASP.NET成员身份OpenAuth for Google从OpenID 2.0迁移到OpenID Connect

时间:2015-04-09 17:52:37

标签: c# webforms asp.net-membership dotnetopenauth google-openid

我有一个现有的Web表单站点,它使用内置的ASP.NET Membership OpenAuth模型。所有这些都运行了一年半以上,但我发现谷歌已弃用OpenID 2.0并将于2015年4月20日(仅一周以上)关闭它。

这就是抽象真的让你陷入困境的地方,因为我所拥有的只是我的AuthConfig.cs中的一行代码

OpenAuth.AuthenticationClients.AddGoogle();

我已经更新了所有与OpenAuth相关的NuGet软件包,希望能够解决这个问题 - 但是没有快乐。

是否有一个简单的解决方案,或者我是否需要完全删除并重写Google身份验证部分?

(很多与此相关的问题,但我还没有找到任何与Web表单Membership.OpenAuth实现特别相关的内容。)

1 个答案:

答案 0 :(得分:2)

Nuget包“DotNetOpenAuth OAuth2 Client for Google”为我解决了这个问题。

在AuthConfig.cs中,将OpenAuth.AuthenticationClients.AddGoogle();替换为:

var client = new GoogleOAuth2Client(clientID, clientSecret);
var extraData = new Dictionary<string, string>();
OpenAuth.AuthenticationClients.Add("Google", () => client, extraData);

setting up your Google App获取字符串值clientID和clientSecret。

在回复重定向Uri的页面中,您向Google注册,请在现有GoogleOAuth2Client.RewriteRequest()之前添加OpenAuth.VerifyAuthentication(redirectUrl)