使用ASP.net MVC v2.0,任何方式來更改__RequestVerificationToken
cookie的名稱?爲了隱藏我們的底層技術堆棧,我想將cookie重命名爲無法追溯到ASP.Net MVC的東西。有沒有方法重命名RequestVerificationToken cookie名稱?
更多的信息在Steve Sanderson's blog。
使用ASP.net MVC v2.0,任何方式來更改__RequestVerificationToken
cookie的名稱?爲了隱藏我們的底層技術堆棧,我想將cookie重命名爲無法追溯到ASP.Net MVC的東西。有沒有方法重命名RequestVerificationToken cookie名稱?
更多的信息在Steve Sanderson's blog。
看着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助手和反僞造令牌。但在這樣做,你總是可以引入自己的錯誤...
ASP.NET MVC 3和4讓你通過設置靜態AntiForgeryConfig.CookieName
屬性來更改cookie名稱。我知道這個問題特別針對ASP.NET MVC 2問題,但是這個問題仍然會在搜索引擎排名上爲諸如「ASP.NET MVC AntiForgeryToken cookie名稱」之類的合適查詢返回高位。我想我會在這裏添加信息來保存其他人像我一樣反編譯ASP.NET MVC 3+源代碼。
不幸的是,沒有改變隱藏輸入名稱__RequestVerificationToken的等價物。 – 2013-07-11 18:26:44
感謝您提供這樣的詳細分析。我想我只是堅持使用默認名稱,而不是熱衷於維護更多的源代碼。也許我會向MVC團隊提出這個請求。 – 2010-08-06 14:47:49