如何在 ASP.NET Core 中手动生成防伪令牌

How to generate an anti forgery token manually in ASP.NET Core

我需要手动生成防伪令牌!

我怎样才能生成这个?

public class TokenController : Controller
{
    [HttpPost]
    [IgnoreAntiforgeryToken]
    public ActionResult Generate()
    {
        var token = "";

        //Generate a token

        return Json(token);
    }
}

我认为您可以将 IAntiforgery 实例注入您的控制器 (docs)。

public class TokenController : Controller
{
    private readonly IAntiforgery _antiforgery;

    public TokenController(IAntiforgery antiforgery)
    {
        _antiforgery = antiforgery;
    }

    [HttpPost]
    [IgnoreAntiforgeryToken]
    public ActionResult Generate()
    {
        var token = "";

        //Generate a token
        var tokenSet = _antiforgery.GetTokens(HttpContext);

        return Json(token);
    }
}