有没有办法重命名RequestVerificationToken cookie名称?

时间:2010-08-06 02:36:04

标签: asp.net-mvc security cookies antiforgerytoken

使用ASP.net MVC v2.0,有什么方法可以更改__RequestVerificationToken cookie的名称?为了隐藏我们的底层技术堆栈,我想将cookie重命名为无法追溯到ASP.Net MVC的东西。

有关Steve Sanderson's blog的更多信息。

2 个答案:

答案 0 :(得分:25)

ASP.NET MVC 3和4允许您通过设置静态AntiForgeryConfig.CookieName属性来更改cookie名称。 (Msdn参考here

我知道这个问题专门询问了ASP.NET MVC 2,但是这个问题仍然在搜索引擎排名上高回合适当的查询,例如“ASP.NET MVC AntiForgeryToken cookie name”。我以为我会在这里添加信息以保存其他人像我一样反编译ASP.NET MVC 3+源代码。

答案 1 :(得分:3)

查看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助手和防伪令牌。但是在这样做的时候你总是会引入自己的错误......