由于某种原因,IIS 无法识别我的表单身份验证 cookie,它一直重定向到登录页面。登录页面是基于使用 .NET 集成的 ColdFusion 10。我基本上试图模仿这篇 MSDN 文章的“创建表单身份验证 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#" />
我知道代码中的所有内容都可以正常工作,因为 cookie是在浏览器中设置的,我可以Decrypt()
获取 cookie 值并Get_Name()
检索正确的用户名。但是,IIS 并不关心 cookie。有什么想法吗?我错过了什么吗?感谢您的任何反馈!