我們試圖在我們的PC(Windows 7,IIS 7.5)上的兩個應用程序之間使用身份驗證,並且一切都很順利。但問題是,當我們嘗試發佈這些網站(Windows Web服務器2008年,IIS 7.0)交叉認證不起作用!跨多個應用程序進行身份驗證
長invistigation後,我們發現,在下面的代碼是第二個站點上發生的錯誤:
Dim formsCookie As HttpCookie = Request.Cookies(FormsAuthentication.FormsCookieName)
If (formsCookie IsNot Nothing) Then
Else
' always null
我們試圖檢查pathes這樣在後面的代碼:
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>
請告訴我們IIS之間有什麼區別本地PC和服務器。
謝謝。
它們是否都發布到同一個域? – 2013-02-21 06:03:43
是在同一個域中,每個域都在獨立子域中。 ex:sub1.mydomain.com.jo,sub2.mydomain.com.jo – Ibsuser 2013-02-21 06:08:47
有沒有特別的配置? – Ibsuser 2013-02-21 08:24:46