2010-08-06 71 views

回答

2

看着MVC 2源代碼我不認爲有可能更改cookie名稱。該AntiForgeryData類開始:

private const string AntiForgeryTokenFieldName = "__RequestVerificationToken"; 

,並得到它只是調用cookie名稱:

string cookieName = AntiForgeryData.GetAntiForgeryTokenName(ViewContext.HttpContext.Request.ApplicationPath); 
在HtmlHelper類

。它接受應用程序路徑並將其轉換爲base 64並將其附加到__RequestVerificationToken的末尾,這是您在查看源代碼時看到的結果。

如果您確實需要更改名稱,我建議您從codeplex下載MVC 2源代碼,並使用源代碼作爲參考,查看創建自己的html助手和反僞造令牌。但在這樣做,你總是可以引入自己的錯誤...

+0

感謝您提供這樣的詳細分析。我想我只是堅持使用默認名稱,而不是熱衷於維護更多的源代碼。也許我會向MVC團隊提出這個請求。 – 2010-08-06 14:47:49

23

ASP.NET MVC 3和4讓你通過設置靜態AntiForgeryConfig.CookieName屬性來更改cookie名稱。我知道這個問題特別針對ASP.NET MVC 2問題,但是這個問題仍然會在搜索引擎排名上爲諸如「ASP.NET MVC AntiForgeryToken cookie名稱」之類的合適查詢返回高位。我想我會在這裏添加信息來保存其他人像我一樣反編譯ASP.NET MVC 3+源代碼。

+4

不幸的是,沒有改變隱藏輸入名稱__RequestVerificationToken的等價物。 – 2013-07-11 18:26:44

相關問題