我有一个现有的Web表单站点,它使用内置的ASP.NET Membership OpenAuth模型。所有这些都运行了一年半以上,但我发现谷歌已弃用OpenID 2.0并将于2015年4月20日(仅一周以上)关闭它。
这就是抽象真的让你陷入困境的地方,因为我所拥有的只是我的AuthConfig.cs中的一行代码
OpenAuth.AuthenticationClients.AddGoogle();
我已经更新了所有与OpenAuth相关的NuGet软件包,希望能够解决这个问题 - 但是没有快乐。
是否有一个简单的解决方案,或者我是否需要完全删除并重写Google身份验证部分?
(很多与此相关的问题,但我还没有找到任何与Web表单Membership.OpenAuth实现特别相关的内容。)
答案 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)
。