IIS表单身份验证无法识别Cookie

时间:2013-03-06 16:40:55

标签: iis cookies coldfusion form-authentication

由于某种原因,IIS无法识别我的表单身份验证cookie,因此它会一直重定向到登录页面。登录页面是使用.NET集成的ColdFusion 10。我基本上试图模仿this MSDN article的“创建表单身份验证Cookie”部分。

IIS 7.5身份验证通过以下设置启用了表单身份验证:

  • 登录网址:/my/login/page.cfm
  • 超时:30
  • 模式:使用cookies
  • 姓名:.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#" />

我知道代码的所有内容都正常运行,因为在浏览器中设置了 我可以Decrypt() Cookie值和{{1}检索正确的用户名。但是,IIS只是不关心cookie。有什么想法吗?我错过了什么吗?感谢您的任何反馈!

1 个答案:

答案 0 :(得分:0)

再次检查您的Cookie。无论您如何键入名称,ColdFusion都会将cookie名称大写。还要验证域。我之前遇到过将CF和.Net混合在一起的问题。我们最终将问题追溯到大写问题和cookie域。

为您的浏览器抓取一个Cookie插件。这些在追捕cookie问题时非常宝贵。