Edited at

ASP.NET が書き出すクッキーのドメイン等を設定する方法と知見


本題

ASP.NET_SessionIdや.ASPXAUTHなどASP.NETが書き出すクッキーのDomainやSecureを変更するには下記の設定をWeb.configに追記します。

  <system.web>

<httpCookies domain="your.domain.name" httpOnlyCookies="true" requireSSL="true" />
</system.web>

上記で動かない場合、コードで書き換える方法もあるようです。(参考


ちなみにクッキーの名前を変える方法

  <system.web>

<!--SessionId-->
<sessionState cookieName="foo" />
<!--.ASPXAUTH-->
<authentication mode="Forms">
<forms name="bar" loginUrl="/Path/To/LoginPage" />
</authentication>
</system.web>


知見

例えばexample.jpとadmin.example.jpという2サイトがあった時にDomainが.example.jpになるように設定すると両方で同じクッキーが使用されることになります。

SessionIdが同じでも動くのか?と疑問に思ったんですがちゃんと動きます。値も別々に書き換えてくれて、同じ値が操作されてしまう問題もありません。

…と思ったんですが、同じ値だと操作されてしまうという記事が。インプロセスと状態サーバ、インデックスを揃えたりしてもうちでは再現しませんでした。セッションの保存の仕方やIISの設定が違うんでしょうか?