所以,我有两个可以从同一个链接访问的站点,基于我将从我的主站点称为“条件”的条件:
if (Condition) {
permission = true;
window.location.href = 'http://Site1?CID=' + CtxCID;
return;
Destination = "site1";
} else {
permission = true;
window.location.href = 'http://site2?CID=' + CtxCID;
return;
Destination = "site2";
}
这些网站位于单独的服务器上。站点1与站点2和主站点位于不同的服务器上,它们位于同一服务器上。
站点1和站点2大致相同:不同之处在于数据库连接字符串。
我的主网站使用身份验证Cookie来确保用户在转移到网站2时保持登录状态:
Private Sub AddAuthCookie(ByVal username As String)
FormsAuthentication.Initialize()
Dim expires As DateTime = DateTime.Now.AddDays(365)
Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket(
1,
username,
DateTime.Now,
expires,
True,
"AUTHCOOKIE",
FormsAuthentication.FormsCookiePath)
Dim encryptedTicket = FormsAuthentication.Encrypt(ticket)
Dim authCookie As HttpCookie = New HttpCookie(
FormsAuthentication.FormsCookieName,
encryptedTicket)
authCookie.Expires = expires
Response.Cookies.Add(authCookie)
Authenticated_hidden.Value = "True"
End Sub
我的主站点的连接字符串的身份验证部分:
<authentication mode="Forms">
<forms name=".AUTH" loginUrl="~/Login.aspx" domain=".domain.com" enableCrossAppRedirects="true" requireSSL="false" />
</authentication>
与上述相同,除了我的两个子网站:
<authentication mode="Forms">
<forms name=".AUTH" loginUrl="http://mysite.mydomain.com/Login.aspx" domain=".mydomain.com" enableCrossAppRedirects="true" />
</authentication>
当它传递到站点2时,这种方法很有用,站点2又与主站点位于同一服务器上。但是,当我访问网站1时,cookie无法让我登录。
所以,我的问题:
有没有比我更多使用Cookie经验的人知道这里发生了什么吗?请记住,我从其他人那里继承了这个网站:主网站和网站2之间的关系已经建立。如果需要,我可以提供更多我的代码片段。请问!
更新:机器密钥设置为固定,并且在所有三个站点上都相同。