C# ProviderName为.Net Framework 4.0 Webform下的google登录返回空字符串

C# ProviderName为.Net Framework 4.0 Webform下的google登录返回空字符串,c#,asp.net,webforms,dotnetopenauth,C#,Asp.net,Webforms,Dotnetopenauth,我正在尝试使用Google登录选项验证web应用程序。我尝试了以下选项(因为我不想使用.net 4.0>框架) .Net Framework 4.0 网络表单 备选案文1: OpenAuth.AuthenticationClients.AddGoogle(); 这是AuthConfig.cs下提供的默认选项 为了获得谷歌登录选项,我取消了上面一行的注释 由于序列不包含任何元素而给出错误。未找到OpenID终结点 备选案文2: var client = new GoogleOAuth2Cli

我正在尝试使用Google登录选项验证web应用程序。我尝试了以下选项(因为我不想使用.net 4.0>框架)

  • .Net Framework 4.0
  • 网络表单
备选案文1:

OpenAuth.AuthenticationClients.AddGoogle();
这是AuthConfig.cs下提供的默认选项 为了获得谷歌登录选项,我取消了上面一行的注释

由于序列不包含任何元素而给出错误。未找到OpenID终结点

备选案文2:

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

它背后的原因是什么?解决方案是什么?

如果使用选项2,则需要将RegisterExternalLogin.aspx更改为以下内容

{GoogleOAuth2Client.RewriteRequest();
ProviderName = OpenAuth.GetProviderNameFromCurrentRequest();}
这将允许找到
ProviderName


您还需要添加
{using DotNetOpenAuth.GoogleOAuth2;}

如果使用选项2,则需要将registerexternalogin.aspx更改为以下内容

{GoogleOAuth2Client.RewriteRequest();
ProviderName = OpenAuth.GetProviderNameFromCurrentRequest();}
这将允许找到
ProviderName

您还需要添加
{usingdotnetopenauth.GoogleOAuth2;}