2012-11-28 26 views
2

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

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(); 
    } 
} 

这工作,但每次谷歌要求确认通过用户的电子邮件到我的网站,而忽略‘记住我的决定’复选框!

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

我在做什么错了?

+1

很高兴你解决了它。只有一点提示:通过'使用DotNetOpenAuth.OpenId.Extensions.AttributeExchange',你可以简化你的每一个属性行:'fr.Attributes.AddRequired(WellKnownAttributes.Contact.Email))' –

回答

3

似乎这是Google方面的问题。

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

相关问题