DotNetOpenAuth - OpenId登录Google每次都要求确认

时间:2012-11-28 13:22:55

标签: c#-4.0 openid dotnetopenauth

我正在使用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();
    }
}

这样做有效,但每当Google要求确认将用户的电子邮件传递到我的网站时,忽略“记住我的决定”复选框!

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

我做错了什么?

1 个答案:

答案 0 :(得分:3)

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

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