2014-11-24 83 views
1

在我部署一些看起来可以在测试中使用的代码之前,在部署到Azure WebRole时使用AntiForgeryToken是否存在任何问题。因为它生成一些html和一个cookie,我担心以下...AntiForgeryToken和缓存页面的使用

页面被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) 

上面会产生什么问题吗?

回答

3

您不能在AntiForgeryToken()令牌 - see this的页面上使用缓存。

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

如果你指的多个实例,这不应该是因为默认情况下天青会照顾有关的machineKey(see here

问题运行WebRole

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

+0

我更新了问题以声明多个实例。 – Andiih 2014-11-25 11:16:06