asp.net - 如何在域和子域之间共享cookie,但不在其他子域之间共享cookie

标签 asp.net cookies subdomain iis-8

我们的 ASP.NET MVC Web 应用程序有几个不同的子域,用于测试和遗留代码。子域是:

  1. www.sitename.com(制作网站)
  2. test.sitename.com(测试)
  3. original.sitename.com(旧代码)
  4. staging.sitename.com(偶尔用于在部署之前进行测试)

我们故意不使用域级 cookie 进行表单例份验证,因为我们希望 cookie 在这些不同的子域中保持唯一。问题是,当人们获得根域 (sitename.com) 的链接时,需要他们再次登录才能获取 cookie,即使他们已经登录到 www.sitename.com。

是否有办法仅在 www.sitename.com 和 sitename.com 之间共享 cookie,而不影响其他子域?

最佳答案

您可以通过使用 >IIS7 中的 UrlRewrite 模块将非 www 域重定向到 www 来避免此问题

重写规则放入 web.config

<system.webServer>
<rewrite>
    <rules>
      <rule name="Redirect to WWW" stopProcessing="true">
        <match url=".*" />
        <conditions>
          <add input="{HTTP_HOST}" pattern="^example.com$" />
        </conditions>
        <action type="Redirect" url="http://www.example.com/{R:0}"
             redirectType="Permanent" />
      </rule>
        </rules>
    </rewrite>
</system.webServer> 

关于asp.net - 如何在域和子域之间共享cookie,但不在其他子域之间共享cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36796908/

相关文章:

.htaccess - SEO 的子域和 htaccess 问题

.net - 使用 ASP.NET Gridview 自定义模板字段

复制文件的 C# 代码,这个片段可以改进吗?

ios - 如何以编程方式删除 Safari cookie

javascript - 如何为 webSocket javascript 设置 cookie header ?

php - 提供静态内容——Wordpress 无 Cookie 子域

c# - 在文本框更改时动态更新标签文本?

javascript - Angularjs 将 $scope 分配给预先存在的 MVC 模型数据

java - 如何用Spring将 'Cookie'头解析为 `javax.servlet.http.Cookie`?

.htaccess - htaccess mod_rewrite : Force using https, 但不在子域上