如何使用csrf token asp c#?

时间:2014-11-14 13:49:28

标签: c# asp.net-mvc asp.net-mvc-3 razor

我开始使用asp mvc 3,然后是c#和razor。我想使用具有安全性的表单来发送请愿POST。

我想用razor渲染一些像那样的

<form action="/sass/" method="post">
     @using (Html.BeginForm()) {
        @Html.AntiForgeryToken()
        <div class="form-group">
            <label>Ingresa tu Nombre</label>
            <input class="form-control" name="nombre" />
        </div>
        <div class="form-group">
            <input type="submit" value="Enviar mi duda" class="btn btn-primary btn-sm" />
        </div>
     }

在C#中我不知道如何验证csrf令牌是有效的。 我使用C#,asp mvc3和razor。

请帮助我!

2 个答案:

答案 0 :(得分:3)

在您的操作方法中,您需要添加相应的属性 [ValidateAntiForgeryToken] ,并为您验证输入。

答案 1 :(得分:2)

您的代码状态有问题。有两种嵌入形式:外部形式和Html.BeginForm生成的形式。但是,验证令牌的方法是使用[ValidateAntiForgeryToken]装饰目标操作或控制器。

所以:

[ValidateAntiForgeryToken]
public ActionResult Index()
{
    return View();
}

或验证控制器中的所有方法:

[ValidateAntiForgeryToken]
public class MyController : Controller
{
}