【问题标题】:Why is the `Arr-Disable-Session-Affinity` header coming through on my Azure Web App (WebSite)?为什么在我的 Azure Web 应用程序(网站)上出现“Arr-Disable-Session-Affinity”标头?
【发布时间】:2015-05-22 19:15:00
【问题描述】:

按照this article 中的过程,我在我的回复中使用此标头禁用了 Azure Web 应用上的 ARR Affinity cookie:

Arr-Disable-Session-Affinity: True

确实删除了 cookie,这是一件非常好的事情。但是,标题本身仍在通过。这个标题并没有真正伤害任何东西,但根据同一个文档,它不应该存在:

如果您添加 Arr-Disable-Session-Affinity 标头来禁用关联 cookie,ARR 不会设置 cookie,但 它也会删除 Arr-Disable-Session-Affinity 标头本身, 因此,如果您的流程正常运行,您将不会看到任何内容。

那么...我如何让它也删除标题?

【问题讨论】:

  • 我正要问同样的问题并找到了你的问题。
  • 我认为如果应用程序使用进程内状态和缩放,如果没有此标头值,事情会变得很糟糕?
  • @TimothyLeeRussell 如果您使用进程内状态,那么不要做任何事情default 行为具有会话/服务器关联性,因此您应该没问题。在我的情况下,我 不想要 亲和力,所以我必须添加这个标题来删除它。
  • @MichaelHaren 谢谢,我就是这么想的。不幸的是,安全扫描器不喜欢关联 cookie,因为它不是 httpOnly 并且不需要 SSL。
  • 我意识到的一件事是 Azure UI 不能正确反映更改,即使您在 Web.config 中设置变量,门户中的属性也会显示:ON 并且不会相应更改

标签: azure azure-web-app-service


【解决方案1】:

如果您在 Azure Web App web.config 中添加了如下所示的 Arr-Disable-Session-Affinity 自定义标头,那么您仍然会看到 Arr-值设置为 true 的 Disable-Session-Affinity 标头,并且在您的 HTTP 响应中删除了 ARR cookie。我认为您提供的参考博客中声明 Arr-Disable-Session-Affinity 标头将被删除是不正确的。

如果您想删除该标头,则 cookie 将出现,它是互斥的。

<system.webServer>
<httpProtocol>
  <customHeaders>
    <add name="Arr-Disable-Session-Affinity" value="true" />
  </customHeaders>
</httpProtocol>

【讨论】:

    【解决方案2】:

    您所指的文章没有具体说明如何添加标题,因此我无法判断您是否正确。我没有测试,但根据this article 你应该在 Application_PreSendRequestHeaders 中设置它:

    protected void Application_PreSendRequestHeaders()
    {
       Response.Headers.Remove("Server");
       Response.Headers.Remove("X-AspNet-Version");
       Response.Headers.Remove("X-AspNetMvc-Version");
       Response.Headers.Add("Arr-Disable-Session-Affinity", "True");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-09
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      相关资源
      最近更新 更多