2

我正在使用 DotNetOpenAuth 使用 Google OpenId 登录我的网站。简单的代码,之前讨论过很多次:

protected static readonly string ENDPOINT = "https://www.google.com/accounts/o8/id";

public void RequestAuthentication(string realm, Uri returnUrl) {
    using (OpenIdRelyingParty openid = new OpenIdRelyingParty()) {
        IAuthenticationRequest openRequest = openid.CreateRequest(ENDPOINT, realm, returnUrl);
        var fr = new FetchRequest();
        fr.Attributes.Add(new AttributeRequest(WellKnownAttributes.Contact.Email, true));
        fr.Attributes.Add(new AttributeRequest(WellKnownAttributes.Preferences.TimeZone, false));
        fr.Attributes.Add(new AttributeRequest(WellKnownAttributes.Name.FullName, true));
        fr.Attributes.Add(new AttributeRequest(WellKnownAttributes.Name.Alias, false));
        fr.Attributes.Add(new AttributeRequest(WellKnownAttributes.Name.Last, true));
        fr.Attributes.Add(new AttributeRequest(WellKnownAttributes.Name.First, true));
        openRequest.AddExtension(fr);
        openRequest.RedirectToProvider();
    }
}

这可行,但每次谷歌要求确认将用户的电子邮件传递到我的网站时,忽略“记住我的决定”复选框!

我已经尝试将 FetchRequest 替换为 ClaimsRequest(使用 AXFetchAsSregTransform)——没有区别。

我做错了什么?

4

1 回答 1

3

似乎这是谷歌方面的问题。

在“Безопасность”>“Авторизация приложений и сайтов”(“安全”>“授权网站和应用程序”?)设置下的我的 Google 帐户中,我删除了我网站的令牌(所有重复项),下次登录时我再次检查了“记住”确认页面和中提琴 - 所有未来登录到我的网站都不需要确认。

于 2012-11-29T12:36:38.627 回答