0

Google OpenId 認証に DotNetOpenAuth 3.5 を使用する ASP.NET アプリケーションがあります。

最近、よりスムーズな UX エクスペリエンスのために、OpenId の動作をウィンドウ ポップアップに変更する必要がありました。ただし、ポップアップ ウィンドウには、ポップアップ ウィンドウ用に最適化されていない Google ログインのダイアログが表示されます。何らかの方法で ltmpl=popup パラメータを URL https://accounts.google.com/ServiceLoginに追加する必要があることに気付きましたが、方法がわかりません。助けてもらえますか?これは私が使用しているコードです

string discoveryUri = "https://www.google.com/accounts/o8/id";
OpenIdRelyingParty openid = new OpenIdRelyingParty();
var b = new UriBuilder(context.Request.Url);
var req = openid.CreateRequest(discoveryUri, b.Uri, b.Uri);
var fetchRequest = new FetchRequest();
fetchRequest.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
req.AddExtension(fetchRequest);
req.RedirectToProvider();
4

1 に答える 1

0

あなたが言及したこのパラメーターについて聞いたことはありませんがltmpl=popup、RPがポップアップウィンドウにあることをOPに伝える方法であるはずのOpenID UI拡張があります。コード スニペットに必要な行を追加し、その他の部分もクリーンアップしました。

var openid = new OpenIdRelyingParty();
var req = openid.CreateRequest(WellKnownProviders.Google);
var fetchRequest = new FetchRequest();
fetchRequest.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
req.AddExtension(fetchRequest);
req.AddExtension(new UIRequest()); // inform the OP it's in a popup.
req.RedirectToProvider();

UIRequest 拡張機能はopenid.ui.mode=popup、認証要求にパラメーターを追加します。

于 2013-02-21T16:37:22.567 に答える