2009-09-18 19 views

答えて

82

2つの方法があり、web.config内の1つのhttpCookies要素のみだけでも内部のフォーム認証SSLでセッションを含むすべてのクッキーを送信しているあなたはrequireSSLをオンにすることができますが、あなたはhttpcookiesにSSLをオンにした場合、あなたはまた、それをオンにする必要があります内部フォーム構成も。明確にするため

編集:あなたが<forms>要素を持っている場合は、しかし、

<httpCookies requireSSL="true" /> 

は、次の要素を追加し、<system.web>素子で<system.web>

<httpCookies requireSSL="true" /> 
+1

+1これは機能しました。ありがとう! – Alex

+11

+1これを明確にするために、web.configに追加して、認証Cookieのセキュアフラグをtrueに設定する必要があります。 Tr1stan

+6

これは、サーバーレベル)構成。 「アプリケーションが安全なCookieを発行するように設定されていますが、ブラウザはSSL(httpsプロトコル)でリクエストを発行する必要がありますが、現在のリクエストはSSLではありません」というエラーが表示されます。これは、リバースプロキシが適切に設定されており、ブラウザがSSL経由で接続しているが、IISサーバーへのリバースプロキシがポート80を超えているために、アプリケーションでセキュリティが確保されていないと考えられたためです。 – mlhDev

130

でこれを入れてブロックsystem.web\authenticationをブロックすると、の設定が上書きされます210に設定し、デフォルトのfalseに戻します。

この場合、requireSSL="true"属性もforms要素に追加する必要があります。

ですから、で終わるだろう:

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

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

+2

マイナー編集(そこにauthノードが必要です。ウェブやフォーム): <認証> <フォームrequireSSL = "真" />

+1

あなたは過乗って他のweb.configファイルの設定を避けることができます。 'lockItem'属性を含めて設定します。そうです:さらに詳しい情報はこちらhttp://www.dotnetnoob.com/2010/11/how-to-secure-aspnet-cookies.html – JTech

+0

さらに、 'roleManager'要素がある場合、その属性' cookieRequireSSL = "true" 'はtrueにも設定します。 Ref。 https://msdn.microsoft.com/en-us/library/system.web.security.roles.cookierequiressl(v=vs.110).aspx –

12

エンタープライズ環境でチェックインされたコードについて話していると、すばやく不愉快になります。我々は最善のアプローチは、以下のweb.Release.configが含まれて持つことであることを発見しました:

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

、開発者は影響を受けませんその方法(デバッグで実行されている)、及び取得唯一のサーバーはリリースビルドクッキーをSSLにする必要があります。

関連する問題