SSL が混在する Web アプリケーション (asp.net 3.5) があります。すべてのアカウント関連ページは SSL 経由で配信されます。ほとんどの他のすべてのページは非 SSL 経由で配信されます。HTTPS と HTTP を自動的に切り替えるには、このコンポーネントを使用します。最近、セキュリティで保護されていない Wifi ネットワークでユーザー セッションを乗っ取る機能に関するニュースがありました。これは、非 SSL 接続を介して送信される Cookie をキャッチすることで可能になります。
これにより、この Web アプリケーションでのセキュリティの選択を見直すきっかけになりました。(再び) MSDN からこの記事を入手し、Formsauthentication でrequireSSL=trueプロパティを試しました。Web アプリケーションを開始する前に、この情報を含む Cookie が Web ブラウザーとの間で送受信されないため、非 SSL ページでは User.Identity が null になることに気付きました。
SSL 接続を介してユーザーを認証するメカニズムが必要です... 非 SSL ページであっても、この認証情報を記憶しています。
SOを検索しているときに、この投稿を見つけました。これは良い解決策だと私には思えます。しかし、Sessionstate にログイン情報を保存することで解決策を見つけることができるのでしょうか? Global.asax で Application_AuthenticateRequest をキャッチすることを考えています。接続が安全かどうかを確認し、authcookie またはセッションを確認します。これをどのように実装するのか、まだ正確にはわかりません。多分あなたはこれについて私と一緒に考えることができますか?