2014-11-24 82 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