asp.net-mvc - 我是否需要在登录操作中使用 ValidateAntiForgeryToken?

标签 asp.net-mvc asp.net-mvc-5

默认情况下(即通过脚手架)将此过滤器应用于 Login 仅有意义。操作,据我所知,这个 token 在已经与登录 ID 关联时效果最好。与它适用于Login , 如果用户尝试登录两次,我会遇到问题,并出现诸如

The provided anti-forgery token was meant for user "", but the current user is "[theLoggedInUser]".



现在,用户登录两次通常不会成为问题,但为此,因此,根据此问题的答案,防止这种情况的额外努力与简单地从登录操作中删除验证相比,意义不大。

最佳答案

是的,你应该使用它。使用 cookie 和它插入的隐藏表单值,它有助于防止恶意用户冒充您的站点并恶意发布请求。

这当然是 ypu 验证您的用户帐户详细信息的地方。没有它,有人可以编写脚本来暴力攻击服务器,试图猜测用户的登录名和密码组合。通过使用验证防伪功能,即使脚本会生成正确的密码,也可以保证每个请求都会失败。

这只是确保人们可以按照您希望的方式访问您网站的功能的众多工具中的一种。

编辑:根据评论更新,但观点仍然成立。用它 ;)

关于asp.net-mvc - 我是否需要在登录操作中使用 ValidateAntiForgeryToken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30704791/

相关文章:

c# - Umbraco GetCropUrl 没有给我一个带有 Image Cropper 的有效 URL

c# - 我将如何在 mvc 4 中将以下语句的值设置为零

asp.net-mvc - ASP.NET MVC添加 Controller 已禁用

c# - 目录存在(@"\\SERVERIP\aFolder\bFolder");总是返回 false

asp.net - 当我在表单中提交 HTML 字符时,为什么 ASP.NET 会抛出内部服务器 (500) 错误?

c# - 获取错误 foreach statement cannot operate on variables of type '' because '' does not contain a public definition for 'GetEnumerator'

javascript - 使用 jQuery 获取页面加载时单选按钮的默认值

asp.net - MVC Html.BeginForm CSS

c# - 如何在 asp.net MVC 4 和 MVC 5 中设置默认 Controller

c# - 基于域和主机名的 ASP.NET MVC 路由