我正在使用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 - 没有区别。
我做错了什么?
答案 0 :(得分:3)
似乎这是谷歌方面的问题。
在“Безопасность”>下的Google帐户中'Авторизацияприложенийисайтов'('安全'>'授权网站和应用'?)设置我删除了我网站的令牌(所有重复项目),在下次登录时我再次检查确认页面上的'记住'和中提琴 - 所有未来登录到我的网站不需要确认。