0

現在作成中の ASP.Net 2 Web サイトで OpenID を設定しようとしており、DotNetOpenAuth を使用しています。だけど、何度やってもぶれない壁にぶち当たったようだ。

Google でサインインしようとすると、「' https://www.google.com/accounts/o8/ud ' への Web リクエストが失敗しました」というメッセージが表示されます。応答として。

奇妙なことに、Google はサイトへのアクセスを許可するかどうかを確認するサインイン画面を正しく表示します。

さらに、Google からのサインイン データがクエリ文字列に正しく追加されています。

では、なぜ OpenID.GetResponse が正しいデータを取得できないのでしょうか?

クエリ文字列からサインイン データを自分で取得できる可能性があります。しかし、それは良い考えですか?

返信ありがとうございます。

編集:動作がLocalhost上にあることをここで明確にしたいだけです。

4

1 に答える 1

1

Web サーバーがファイアウォールの背後にある場合、または送信 HTTP 要求を行うためにプロキシが必要な場合は、web.config ファイルに、システムの既定のプロキシ (または特定の名前のプロキシ) を使用するためのスニペットが含まれていることを確認してください。

<system.net>
    <defaultProxy enabled="true" />
</system.net>

いいえ、クエリ文字列からサインイン データを自分で取得するだけではありません。クエリ文字列自体を作成するだけで、誰かが誰でもログインできるようになるのを防ぐために、その文字列に対して実行する必要がある多くの検証があります。実際、検証中に DotNetOpenAuth が失敗しているように聞こえるため、このアウトバウンド HTTP 要求の問題が解決されるまでは、自分で行うこともできないでしょう。

ここで難しいのは、DNOA があなたを Google に送信できたのに、後で Google に連絡して肯定的な主張を確認できなかった理由です。上記の方法がうまくいかない場合は、ログを有効にして質問にログを追加できますか?

于 2010-01-28T13:40:41.880 に答える