【问题标题】:Umbraco 7 custom cookiesUmbraco 7 自定义饼干
【发布时间】:2015-01-29 01:36:44
【问题描述】:

我在 Umbraco 旁边运行一个 MVC 站点。 MVC 站点完全独立于 Umbraco 处理自己的身份验证,并为此处理 ASP.NET Forms 身份验证。它设置一个 cookie 并在内部使用它来跟踪事物。

大部分情况下一切正常,但是如果我使用上述 cookie 集登录到我的 MVC 站点,我会尝试使用正确的 Umbraco 凭据登录到 Umbraco 管理部分,它会验证我并将我重定向到管理员部分,但 WebAPI 调用开始失败。第一个是调用:/umbraco/backoffice/UmbracoApi/UpdateCheck/GetCheck,它返回一个417 Missing token null HTTP 错误响应。

如果我删除我的自定义 cookie 并刷新页面一切正常。

我不明白我的 cookie 是如何干扰 Umbraco 的。它没有使用 ASP.NET Forms 身份验证或任何东西。

【问题讨论】:

    标签: asp.net-mvc cookies umbraco umbraco7


    【解决方案1】:

    发生此错误是因为您的请求未发送所需的角度 CSRF 标头 + cookie。我不确定为什么会出现这种情况,但如果这是您的自定义 cookie 的错误,这确实很奇怪。也许您可以告诉我们有关您的问题的更多信息:Cookie 名称/值、重现步骤、Umbraco 的特定版本、托管环境等......

    关于发生了什么的一些信息,返回此错误的代码在这里:

    https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Web/WebApi/Filters/AngularAntiForgeryHelper.cs#L94

    这是设置 CSRF cookie 的位置:

    https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Web/WebApi/Filters/SetAngularAntiForgeryTokensAttribute.cs

    这个属性应用于两个动作,一个是登录,一个是我们检索当前用户数据时:

    这是在 JS 中设置标头的地方:

    https://github.com/umbraco/Umbraco-CMS/blob/5b9a98ad6ae9e63322c26f7b162204e34f7fcb54/src/Umbraco.Web.UI.Client/src/init.js#L11

    根据您的托管环境/设置,有一些防火墙剥离/更改数据的奇怪报告,例如:

    http://our.umbraco.org/forum/umbraco-7/using-umbraco-7/47340-Umbraco-7-plus-ISA-Server-2006

    希望根据以上信息,您或许能够查明问题的根源。

    【讨论】:

      【解决方案2】:

      我最初的想法是,您不小心为您的 cookie 使用了一个由 Umbraco 保留的键值,这可能会导致读取错误的 cookie,从而导致问题。解决这个问题的方法是简单地重命名您的 cookie。

      如果不是这样,我还有另一个理论:

      HTTP 请求将始终包含路径/域与您请求的资源的域匹配的所有 cookie。它们主要按路径长度排序,其次按创建时间排序。如果 Umbraco 后端由于某种原因在列表中通过其索引号(甚至不会感到惊讶)而不是键值找到用于身份验证的 cookie,则您的自定义 cookie 将导致索引移动,从而使 Umbraco 看起来错误饼干

      所以,如果重命名 cookie 没有任何作用,可以尝试将 cookie 的路径设置为最短路径,这会使您的浏览器将 cookie 放在列表的更靠后的位置,因此索引不会移动。

      不过这只是一个理论,所以我很想听听它是怎么回事:)

      【讨论】:

      • 这是有问题的部分 -> github.com/umbraco/Umbraco-CMS/blob/… 我没有看到任何迹象表明 cookie 是通过索引号找到的,抱歉 :)
      • 我正在后台使用会话。设置会话的那一刻,会添加一个名为 ASP.NET_SessionId 的额外 cookie。 cookie 以字母“A”开头,是索引中的第一个。之后我也收到这些错误。
      • @Sniffdk 我真的很高兴听到这个消息 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多