我们正在尝试在我们 PC 上的两个应用程序(Windows 7、IIS 7.5)之间使用身份验证,并且一切正常。但问题是当我们尝试发布这些站点(Windows web server 2008、IIS 7.0)时,交叉身份验证不起作用!!
经过长时间的调查,我们发现错误发生在第二个站点的以下代码中:
Dim formsCookie As HttpCookie = Request.Cookies(FormsAuthentication.FormsCookieName)
If (formsCookie IsNot Nothing) Then
Else
' always null
我们试图在后面的代码中检查这样的路径:
Dim ticket As New FormsAuthenticationTicket(1, smsProfile, DateTime.Now, _
DateTime.Now.AddDays(1), True, AdminSessions.UserObj.Pid, _
FormsAuthentication.FormsCookiePath)
Dim hash As String = FormsAuthentication.Encrypt(ticket)
Dim cookie As New HttpCookie(
FormsAuthentication.FormsCookieName,
hash)
If (ticket.IsPersistent) Then
cookie.Expires = ticket.Expiration
End If
Response.Cookies.Add(cookie)
Response.Redirect(smsPortal)
在 web.config 中:
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" enableCrossAppRedirects="true" domain="mydomain.com.jo" loginUrl="http://..." protection="All" path="/"/>
</authentication>
请告诉我们本地PC和服务器中的IIS有什么区别。
谢谢。