158

ASP.NETセッションCookieにセキュアフラグを設定して、HTTPS経由でのみ送信され、プレーンHTTP経由では送信されないようにするにはどうすればよいですか?

4

5 に答える 5

195

要素に、次の<system.web>要素を追加します。

<httpCookies requireSSL="true" />

ただし、ブロックに<forms>要素がある場合system.web\authentication、これは の設定をオーバーライドhttpCookiesし、デフォルトに戻しますfalse

その場合、requireSSL="true"フォーム要素にも属性を追加する必要があります。

したがって、次のようになります。

<system.web>
    <authentication mode="Forms">
        <forms requireSSL="true">
            <!-- forms content -->
        </forms>
    </authentication>
</system.web>

これらの要素の MSDN ドキュメントについては、こちらこちらを参照してください。

于 2011-05-31T15:39:06.250 に答える
139

2 つの方法があります。1 つのhttpCookies要素をweb.config使用するとrequireSSL、セッションを含むすべての Cookie のみを SSL のみで送信し、フォーム認証内でも送信できますが、httpcookies で SSL を有効にする場合は、フォーム構成内でも有効にする必要があります。

明確にするために編集: これを入れてください<system.web>

<httpCookies requireSSL="true" />
于 2009-09-18T06:53:34.727 に答える
23

エンタープライズ環境でチェックインされたコードについて話していると、事態はすぐに混乱します。最善の方法は、web.Release.configに次の内容を含めることです。

<system.web>
  <compilation xdt:Transform="RemoveAttributes(debug)" />
  <authentication>
      <forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
  </authentication>
</system.web>

そうすれば、開発者は影響を受けず (デバッグで実行)、リリース ビルドを取得するサーバーのみが Cookie を SSL にする必要があります。

于 2016-03-08T01:56:03.070 に答える