c# - 为同一操作 MVC5 将 ValidateAntiForgeryToken 属性设置为 GET/POST

标签 c# asp.net-mvc-5 antiforgerytoken

我的问题很直接...

我有一个 Action 接受 HttpGetHttpPost,但我想将 ValidateAntiForgeryToken 属性设置为http 请求为 POST 时的操作,不适用于 HttpGet

我可以在操作中找到请求是 GET 还是 POST,但我需要在调用操作之前知道。

    [ValidateAntiForgeryToken]  // Only for HttpPost
    public ActionResult Index() // Allows HttpPost / HttpGet
    {

    }

是否有可能在不重复操作的情况下实现这一目标?

谢谢

最佳答案

您可以有条件地检查请求的 HTTP 方法并自己手动进行验证:

if (Request.Method.ToLower() == "post") 
{
    System.Web.Helpers.AntiForgery.Validate();
}

关于c# - 为同一操作 MVC5 将 ValidateAntiForgeryToken 属性设置为 GET/POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35085507/

相关文章:

c# - 是否有一个版本的 Tuple 类的 Items 属性不是只读的并且可以设置?

asp.net-mvc-5 - 在vs2015中打开vs2013项目 端口已在使用

c# - T-SQL 具有 `time` 数据类型——C# 是否只有 `time` 而不是 `datetime` 数据类型?

asp.net-mvc - ASP.NET MVC AntiForgeryToken 在 GET 上抛出异常?

asp.net-mvc - 用于加密的 MVC AntiForgeryToken 机器 key

c# - 当使用参数重定向到另一个操作时,属性变为 NULL

C# 单元测试列表

c# - 修剪或格式化 asp 网络超链接

.net - 在 MVC 5 Membership 中更改密码长度

winforms - 在 Winform 和 WebAPI 中处理 AntiForgery Token