2

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を使用)に置き換えようとしました-違いはありません。

私が間違っているのは何ですか?

4

1 に答える 1

3

これは Google 側の問題のようです。

Google アカウントの [Безопасность] > [Авторизация приложений и сайтов] ([セキュリティ] > [承認されたサイトとアプリ] ?) の設定で、サイトのトークン (すべての繰り返し項目) を削除し、次回のログオン時に [記憶] を再度オンにしました確認ページとビオラ - 私のサイトへの今後のすべてのログオンは確認を必要としません。

于 2012-11-29T12:36:38.627 に答える