我正在asp.net中建立一个站点,并且具有多个子域。例如,
one.cookies.com
two.cookies.com
我希望我的用户能够在任何一个子域中登录并登录两个网站。另外,我希望 session 和cookie 保持同步。到目前为止,我还没有找到一种可靠的方法来执行此操作。
最佳答案
创建Cookie时,您可以设置域:
HttpCookie cookie = new HttpCookie("name", "value");
cookie.Domain = "cookies.com";
这将允许您从cookie.com的所有子域访问您的cookie。
如果您使用FormsAuthentication,则可以在web.config中设置auth cookie的域:
<forms name=".ASPXAUTH"
loginUrl="login.aspx"
defaultUrl="default.aspx"
protection="All"
timeout="30"
path="/"
requireSSL="false"
domain="cookies.com">
</forms>
请记住,要使单点登录可以在多个子域上工作,ASP.NET应用程序必须共享相同的machine keys,如本CodeProject article中所述。
在不同子域(不同的工作进程)之间共享 session 更加困难,因为 session 受限于应用程序,您将必须实现自定义 session 同步机制。
关于asp.net - 同步不同子域(asp.net)中的cookie和 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/444018/