5

System.IdentityModelを使用して、クレームプリンシパルでフォームauthを使用してASP.NET MVC4 Webアプリケーションのユーザーを認証しています。 (この記事に基づいてコード:http://brockallen.com/2013/01/26/replacing-forms-authentication-with-wifs-session-authentication-module-sam-to-enable-claims-aware-identity/SessionAuthenticationModule CookieハンドラがHttpOnlyセキュアCookieを作成しない

マイClaimsBasedAuthenticationServiceクラスはSessionSecurityTokenからSAMクッキーを発行し、私はちょうど今、それはHttpOnlyのように、セッションクッキーを作成するか、必要とされていないことに気づいたことを除いて、すべてが...よくなっていますSSLを要求する必要があります。コードをデバッグすると、CookieHandlerオブジェクトのプロパティがデバッガで正しく設定されていることがわかりますが、作成される最後のセッションCookieにはHTTPOnlyとSecureフラグが設定されていません。

私のような明示的にtrueにこれらを設定するには、web.configファイルのラインを持っている:私は行方不明です何か他のものが私のFedAuthクッキーは、スクリプトから隠されるようにするため(にあるかどう

<system.web> 
    <httpCookies httpOnlyCookies="true" requireSSL="true" /> 
    <authentication mode="Forms"> 
    <forms ... requireSSL="true" /> 
    </authentication> 
... 
</system.web> 
<system.identityModel.services> 
    <federationConfiguration> 
    <cookieHandler requireSsl="true" hideFromScript="true" /> 
    </federationConfiguration> 
</system.identityModel.services> 

誰かが教えてもらえますHTTPOnly)SSLが必要ですか?

+0

誰かがhttpCookies要素にlockItem = "true"という属性を追加するよう提案しましたが、何もしない。 –

答えて

0

同じ実装を使用していますが、Fiddler2を使用して問題が表示されません。しかし、おそらくこの問題はデバッグツールに関連していますか? IE10のデバッグツールでは、安全なフラグとhttpのみのフラグは、クッキーが最初に受信されたときにのみ表示されます。 Chromeデバッグツールを使用してチェックすると、すべてのリクエストでフラグが正しく表示されます。

+0

Chromeの開発ツールでも表示されません。私はFiddler2で試しましたが、リクエスト全体を表示するだけでなく、ホスト名 "へのトンネル"しか表示しません。 Fiddlerがdevツールのようなリクエスト/レスポンスの詳細を表示しない理由は不明です。 –

+0

HTTPSトラフィックを解読するためにFiddlerを設定しましたか?ツール| Fiddler Options→HTTPSタブ)。効果的に中間攻撃を受けた人物ですが、デバッグに必要なものを見ることができます。 –

0

これは役に立ちましたか?私は基本的に同じコードを使用してきました。

私は、次の提案は何を行うには何を持っていることを見ることはできませんが、私はお勧めできる唯一のものは、クッキーの有効期間を設定している

<cookieHandler hideFromScript="true" requireSsl="true" persistentSessionLifetime="30" /> 

<forms loginUrl="/Whereever" timeout="30" requireSSL="true" /> 

<system.webServer> 
    <modules> 
    <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
    </modules> 
</system.webServer> 
+1

私はこのプロジェクトをしばらくはやっていませんが、思い出したように、属性が正しく設定されていると思っています。 –

関連する問題