マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • ASP.NETアプリケーションのP層部分のプロジェクトを分割すると、
    SessionCookie?と、Cookie認証Ticketが共有できなくなり、
    ≒ Sessionが分割され、SSOもできない状態になる。
  • 必要に応じて、

    SessionCookie?、Cookie認証Ticketを共有する」

設定が必要になる。

詳細

SessionCookie?

下記の処置を施せば、Sessionを共有可能と思われる(未検証

  • SessionCookie?
    • SessionCookie?を共有するサイトのドメインを指定する。
    • SessionCookie?名を一致させる(既定値はASP.NET_SessionId?で一致している)。
  • Sessionデータ
    • 当然、InProc?モードではNGなので、StateServer?モードを選択する。
    • machineKeyを設定する(同一マシンなら不要?)。
    • アプリケーション名を設定する(設定処理はGlobal.asaxなどに実装)。
       <system.web>
         <!-- Cookieを共有するサイトのドメインを指定-->
         <httpCookies domain=".your.site"/>
         <!-- セッション StateServerにセッション保存、セッションクッキー名の指定、タイムアウト指定-->
         <sessionState
           cookieless="UseCookies"
           cookieName="ASP.NET_SessionId"
          mode="StateServer"
           regenerateExpiredSessionId="false"
           stateConnectionString="tcpip=10.1.1.1:42424"
           timeout="30">
         </sessionState>
         <!-- machineKeyを設定-->
         <machineKey
           validationKey="..."
           decryptionKey="..."
           validation="SHA1" decryption="AES" /> 
       </system.web>
       <appSettings>
         <!-- アプリケーション名を設定-->
         <add key="ApplicationName" value="appName" />
       </appSettings>

Cookie認証Ticket

また、Forms認証のCookie認証Ticketついては、

  • Cookie認証Ticket名だけ一致させておけば共有できる(既定値で一致していると思う)。
  • ドメイン指定は単一サイト内なら省略出来るが、明記することも出来る。
  • EnableCrossAppRedirects?をtrueにすれば、
    ドメイン間(サブ・ドメイン間)でもコレを共有できる。
    <authentication mode="Forms" >
      <!-- The name, protection, and path attributes must match 
           exactly in each Web.config file. -->
      <forms loginUrl="login.aspx"
        name=".ASPXFORMSAUTH" 
        protection="All"  
        path="/" 
        domain="contoso.com" 
        timeout="30" />
    </authentication>

参考

SessionCookie?

Cookie認証Ticket


Tags: :.NET開発, :ASP.NET


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-07-11 (木) 11:12:41 (11d)