【问题标题】:how to use csrf token asp c#?如何使用 csrf 令牌 asp c#?
【发布时间】:2014-11-14 21:55:01
【问题描述】:

然后,我从 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。

请帮帮我!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 如果这个答案对你有用,请采纳。
    【解决方案2】:

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

    所以要么:

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

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

    [ValidateAntiForgeryToken]
    public class MyController : Controller
    {
    }
    

    【讨论】:

    • 我应该如何将我的表单与参数免费,所以:
      。它使用 Html.BeginForm()
    • 今天了解到,AntiForgeryToken 和 CsrfToken 是有区别的。 Csrf 比 AntiForgery 更严格。但是,属性仍然是要走的路。
    猜你喜欢
    • 2012-05-29
    • 1970-01-01
    • 2012-07-12
    • 2013-12-03
    • 2018-02-02
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    相关资源
    最近更新 更多