3

私は MVC 4 (Visual Studio Express 2012) を学習しており、openId/OAuth 外部ログイン サポートに焼き付けられた新しいテンプレートを使用しようとしています。私はこのチュートリアルに従っています

これまでに行ったことは、フォーム認証を使用して新しい MVC 4 インターネット アプリケーションを作成し、ファイル内のOAuthWebSecurity.RegisterGoogleClient();行のコメントを外したことだけです。AuthConfig.cs

ストック テンプレートから 1 行のコードを変更するのは非常に簡単に思えますが、プロジェクトを実行すると、Google ボタンをクリックすると「OpenID エンドポイントが見つかりません」という例外が発生します。

これまで OAuth/OpenID で何かをしようとした経験がないことに注意してください。

これはおそらく、開発マシンのローカルホストから実行しているという事実と関係がありますか? または、企業のプロキシ サーバー/ファイアウォールのような他の環境変数はありますか?

このチュートリアルから、localhost からこれをテストできるという印象を受けました(少なくとも Google の場合)。

または、そのエラーには別の理由がありますか?

答える前に、これを機能させるためにカスタム コードを書きたくないことに注意してください。ストックテンプレートを使いたい。


アップデート

自宅で試してみましたが、ローカルホストでは問題なく動作します。職場のネットワーク環境が関係しているに違いありません。おそらくファイアウォールまたはプロキシのいずれかです。誰かが何か提案があれば、私はまだこれを仕事で働かせたいと思っています...

4

3 に答える 3

1

私が見る限り、あなたはチュートリアルを正しくフォローしていますが、Googleの使用については少し大ざっぱなようです。詳細については、http://blogs.msdn.com/b/webdev/archive/2012/09/12/integrate-openauth-openid-with-your-existing-asp-net-application-using-universal-providersをご覧ください。 .aspxであり、より良いステップバイステップを提供する可能性があります。

特に、チュートリアルの冒頭にあるNuGetパッケージに注目してください。NuGetパッケージは、動作に必要な.dllアセンブリを取得するだけでなく、Web.Configファイルに変更を加えることがよくあります。このファイルで、Oauthプロバイダーのエンドポイント情報を見つけることができます。これらのパッケージのすべてをインストールしなかった場合は、一部の構成設定が欠落している可能性があります。

あなたが話している特定のプロジェクトテンプレートがないので、確認できません。web.configを投稿できますか?微調整が必​​要なものがあるかもしれません。

ああ、そしてあなた自身のグーグルプロバイダーを書くことについてのチュートリアルもあります、それは非常に簡単に思えます:http: //blogs.msdn.com/b/webdev/archive/2012/08/23/plugging-custom-oauth-openid-providers .aspx

于 2012-09-17T10:36:19.920 に答える
0

これが実際に問題の原因であるかどうかはわかりませんが、OAuth を行っている場合は、常にポート 80 で実行していることを確認し、次の行を追加します。

127.0.0.1     www.local.com 

C:\Windows\System32\drivers\etc(管理者としてメモ帳で開く必要があります)、次に、に行くhttp://localhost:1234だけでなくhttp://www.local.com、試してみてください。問題が解決しない可能性がありますが、もう1つ除外されます。

于 2012-09-20T09:22:19.587 に答える
0

オフィスでのみこの問題が発生している場合は、プロキシが問題である可能性があります。プロジェクトのファイルにプロキシ自動検出構成を追加すると、Web.configうまくいくはずです。

<configuration>
  ...
  <system.net>
   <defaultProxy useDefaultCredentials="True">
    <proxy autoDetect="True" usesystemdefault="True" />
   </defaultProxy>
  </system.net>
</configuration>
于 2015-03-03T14:49:34.340 に答える