OpenIdをASP.NET MVCアプリケーションに統合するためにDotNetOpenAuth MVC依存パーティクルサンプルコードを使用しています。DotNetOpenAuth - 信頼する側が信頼できるサイトでOpenIdのログインリダイレクトがハングアップする
コードは、次の場合を除いて素晴らしいです:私のアプリが信頼できるサイトで、IEの下でホストマシン以外の場所からそのサイトにアクセスしているとき、OpenIdへのリダイレクトプロバイダがハングします。
具体的には、コントローラメソッドがプロバイダにリダイレクトするActionResultを返すポイントにコードが到達し、IEがそこに着くとサイクルが発生します。
私は、スタックオーバフロー自体をテストして正常に動作したため、信頼する側が信頼できるサイトであっても、MVCでOpenId認証をサポートすることができます。
私は、トラフィックを見るためにFiddlerを使用しました。私のアプリケーションが信頼できるサイトであるときは、プロバイダに要求が出されませんでした。
アイデア?
当該サンプルDotNetOpenAuthコードの行である:。
リターン openid.CreateRequest(のRequest.Form [ "openid_identifier"])RedirectingResponse.AsActionResult();
更新#1 フィドラーで、Iは、コントローラのアクションIは、リダイレクトのロケーションヘッダと302応答リターンを呼び出していていることがわかりますが、何もまったくその後起こりません。私はstackoverflow.comとnerdbank.orgで再テストし、これらの2つのサイトでまったく同じ失敗動作を見た。私は信頼できるサイトとして両方を追加し、IEから完全にクローズしました。そして、私がこれらのサイトに戻ったとき、私は正常にログインできませんでした。
私はWindows 7でIE 8を実行しています。役立つ場合は、完全なFiddlerログを提供できます。
また、サイトが「信頼できる」と言われると、IEブロックは信頼されていないドメインへのリダイレクトをブロックするという言い方もあります。
更新#2
私は私の信頼済みサイトへのオープンIDプロバイダを追加し、現在リダイレクトが発生したため、ログインプロセスが動作します。だから、これは実際にユーザーエージェント(IE)の問題のようです。私はこのリンクを見つけた3
更新#は:link text
同様の問題を記述しているようです。私は提案された決議に従って、私の信頼できるサイトとインターネットゾーンの両方をIEの "保護モード"に設定しました。それは私の問題を解決したようです。
実際、相互完全性レベルのリダイレクトは常に難しいです。しかし、適切なリダイレクトを可能にする修正プログラムを入手した後でも、一部のサイトに問題がある可能性があります。問題は、ミディアムインテグリティIE(信頼ゾーン)と低インテグリティIE(インターネットゾーン)が異なるクッキーストアを持っていることです。ある完全性レベルで設定されたCookieは、他の完全性レベルに存在しません。 – EricLaw
私の特定のシナリオでは、ここに問題はありません。 OpenIdプロバイダから認証を受け取り、サーバー側でフォームの認証Cookieを作成します。そのCookieは、アプリケーションが実行されている信頼ゾーンのCookieストアに置かれます。ログインした後に誰かが自分のアプリケーションの信頼ゾーンを変更した場合、問題が発生します。 –