DotNetOpenAuthを使用して、GoogleOpenIdを使用して自分のサイトにログインしています。以前に何度も議論された単純なコード:
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がユーザーの電子メールを私のWebサイトに渡すための確認を求めるたびに、[私の決定を記憶する]チェックボックスを無視します。
私はすでにFetchRequestをClaimsRequest(AXFetchAsSregTransformを使用)に置き換えようとしました-違いはありません。
私が間違っているのは何ですか?