ASP.Net身份提供商请求太多信息

时间:2014-02-22 15:30:43

标签: asp.net-identity

我有asp.net indentity正常工作。但是,当用户登录时,Google会询问用户是否可以提供以下信息:

- 查看您的电子邮件地址
- 查看有关您帐户的基本信息

问题是我甚至不想要那些信息。我只想要一种独特的方式来识别用户(它确实提供)。我不希望用户认为我们在登录时会发送垃圾邮件。

在Startup.Auth.cs中,我使用了一个非常普通的谷歌设置:

app.UseGoogleAuthentication();

编辑:解决方案

布朗克的回答让我找到了正确的解决方案。关键是在范围内添加“openid”。

    var googleOAuth2AuthenticationOptions = new GoogleOAuth2AuthenticationOptions
        {
            ClientId = "XXXX",
            ClientSecret = "YYYY",
            CallbackPath = new PathString("/Account/LoginCallback/"),
        };

    googleOAuth2AuthenticationOptions.Scope.Add("openid"); //!Important

    app.UseGoogleAuthentication(googleOAuth2AuthenticationOptions);

1 个答案:

答案 0 :(得分:3)

在Katana v2中间件中,谷歌支持只是Open ID,并且它被硬编码以请求电子邮件。

在v2.1中,他们现在拥有OAuth2支持,这意味着GoogleAuthenticationOptions具有范围属性,可让您控制从谷歌询问的内容。但这意味着您需要像任何其他OAuth2提供商一样设置您的客户端应用程序(因此您需要注册并获取客户端ID /机密)。