使用AntiForgeryToken和Cached页面

时间:2014-11-24 09:46:55

标签: c# asp.net-mvc-4 azure cookies

在部署一些似乎在测试中工作的代码之前,部署到Azure WebRole时使用AntiForgeryToken是否存在任何问题。因为它会产生一些HTML和cookie,所以我担心以下......

页面由MVC缓存缓存。防伪令牌的cookie是否会在后续页面请求中重新发布?

该页面在多个实例上的Azure Webrole中运行。如果接收服务器不是生成页面的服务器,是否有任何问题?

表格来自保存在数据库中的一堆html。因此,我们建议有效地执行字符串替换以查找简单的令牌并交换AntiForgery令牌。 (以下代码)这似乎有效,但令我担心。

        var xtoken = "<!--AntiForgeryToken-->";
        if (content.Contains(xtoken))
        {
            var token = HttpUtility.HtmlDecode(html.AntiForgeryToken().ToHtmlString());
            content = content.Replace(xtoken, token);
        }

        return html.Raw(content)

以上会产生任何问题吗?

1 个答案:

答案 0 :(得分:3)

您无法在AntiForgeryToken()令牌 - see this

的网页上使用缓存
  

该页面在多个服务器上的Azure Webrole中运行

如果您的意思是WebRole在多个实例上运行应该不是问题,因为默认情况下Azure会关注MachineKey(see here

但是在部署(重新部署)之后,您可能会遇到问题,因为Azure will override MachineKey