1

何らかの理由で、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 を気にしません。何かご意見は?何か不足していますか?フィードバックをお寄せいただきありがとうございます。

4

1 に答える 1

0

クッキーをもう一度確認してください。ColdFusion では、名前の入力方法に関係なく、Cookie 名が大文字になります。ドメインも確認します。Cookie が関係する CF と .Net を混在させると、以前に問題がありました。最終的に、大文字と小文字の問題と Cookie ドメインに問題を突き止めました。

ブラウザ用の Cookie プラグインを取得します。これらは、Cookie の問題を突き止める際に非常に役立ちます。

于 2013-03-07T19:26:15.400 に答える