何らかの理由で、IIS がフォーム認証 Cookie を認識せず、ログイン ページにリダイレクトし続けます。ログイン ページは、.NET 統合を使用した ColdFusion 10 ベースです。私は基本的に、この MSDN 記事の「フォーム認証 Cookie の作成」セクションを模倣しようとしました。
IIS 7.5 認証では、次の設定でフォーム認証が有効になっています。
- ログイン URL: /my/login/page.cfm
- タイムアウト: 30
- モード: Cookie を使用する
- 名前: .CFAUTH
- 保護: 暗号化
- SSL が必要: いいえ
- 有効期限の延長: はい
コードは基本的に次のようになります。
<!--- Authenticating code here... --->
<!--- Create .NET Instances --->
<cfobject type=".NET" assembly="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Web.dll" class="System.Web.Security.FormsAuthentication" name="authForm" />
<cfobject type=".NET" assembly="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Web.dll" class="System.Web.Security.FormsAuthenticationTicket" name="authTicket" />
<!--- Create Auth Ticket --->
<cfset authTicket.init(2, "user.name", Now(), DateAdd("n", 30, Now()), false, "") />
<!--- Encrypt the Ticket, Creating Cookie Value --->
<cfset authCookie = authForm.Encrypt(authTicket) />
<!--- Create the actual Cookie --->
<cfcookie name=".CFAUTH" expires="#DateAdd("n", 30, Now())#" value="#authCookie#" />
<!--- Redirect Back to Originating URL --->
<cflocation url="#URL.ReturnUrl#" />
CookieがブラウザーにDecrypt()
設定されており、Cookie の値Get_Name()
を取得して正しいユーザー名を取得できるため、コードのすべてが適切に機能していることはわかっています。ただし、IIS は Cookie を気にしません。何かご意見は?何か不足していますか?フィードバックをお寄せいただきありがとうございます。