【问题标题】:How to Use Session or Cookies On Differnt Domains如何在不同的域上使用会话或 Cookie
【发布时间】:2015-04-30 05:13:21
【问题描述】:

我想在两个不同的域之间共享会话。 如何使用 cookie 做到这一点。我想在两个域之间共享用户 ID。

例如。

第一个网站:www.example.com 在 ASP.NET 中

第二个网站:www.newwebsite.com 在 PHP 中

当用户进入第一个网站时,登录后将重定向到第二个网站。

我想从第一个网站 cookie 中获取用户 ID。如何使用 cookie 来实现这一点。我的两个网站都在不同的平台上,并且托管在不同的服务器上。

代码:

 // Create  cookie on First website : 

    HttpCookie cookie = new HttpCookie("example "); 
    cookie.Values.add("Username", "user1");


    //Want to retrieve on Second website
    HttpCookie LoginCookie = Request.Cookies.Get("example ");
     string x = LoginCookie["Username"].ToString();

提前致谢

【问题讨论】:

    标签: asp.net session cookies


    【解决方案1】:

    Cookie 通过(弱)加密与各个站点/服务器绑定。您需要做的是通过配置中的机器密钥告诉 IIS 它们是相同的。可以说您可以在 IIS 内部执行此操作,但没有源代码控制。

    Milan Mathew 在这里为您提供了一个不错的开端 (http://www.codeproject.com/Tips/438319/Sharing-Authentication-Cookie-between-two-ASP-NET)。基本上在两个站点中,您都应用相同的加密信息。

    <machineKey
         decryptionKey="A225194E99BCCB0F6B92BC9D82F12C2907BD07CF069BC8B4"
         validationKey="6FA5B7DB89076816248243B8FD7336CCA360DAF8" />
    

    请记住,根据您运行的 IIS 和 .NET 版本,您将决定如何设置以及应用这两者的配置。最近对如何做到这一点进行了修改。

    请提供更多信息以获取有关您的设置的更多详细信息,以获得更具体的帮助。

    无论如何,将您的搜索条件基于此概念,您应该没问题。

    【讨论】:

    • 仅供参考,一个是 ASP.NET,第二个是 PHP
    【解决方案2】:

    HTTP 协议说,当且仅当两个站点都部署在同一个域(或子域)下时,两个不同的站点才能共享一个 cookie。在内部,您的浏览器根据网站的 URL 将 cookie 存储在本地(磁盘或内存中)。当您对任何站点进行后续请求时,浏览器会读取那些与当前请求的 URL 相比具有匹配域名或子域名的 cookie,并将这些 cookie 与请求一起发送。

    【讨论】:

      【解决方案3】:

      使用 JavaScript/HTML5 的“LocalStorage”功能,如果您在 myDomain.com:81 上并在本地存储中设置了一个值,但随后重定向到 myDomain.com,则本地存储将有所不同,该值将迷路了。

      如何在浏览器中存储跨所有域的简单值?

      如果它有所作为,这是一个 Chrome 扩展程序。

      【讨论】:

      • 如果您有问题,请ask 提出新问题,不要“回答”现有问题。
      猜你喜欢
      • 2013-10-24
      • 2013-11-19
      • 2010-10-30
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 2012-04-22
      相关资源
      最近更新 更多