为原生移动应用提供防伪令牌

时间:2016-09-11 00:41:24

标签: ios .net asp.net-mvc security forms-authentication

我有一个ASP.NET WebApi解决方案,所有客户都使用 Forms Auth 。我的MVC消费者正在使用以下内容:

@Html.AntiForgeryToken()

然后在我的所有API端点上,我通过WebApiValidateAntiForgeryTokenAttribute验证是否在标头中设置了令牌。

在开发我的iOS应用程序时,我决定将cookie作为auth机制进行维护。如何在iOS客户端应用程序中生成此令牌?

更新

根据此post,我完成了以下工作:

    [System.Web.Http.HttpGet]
    [AllowAnonymous]
    [Route("api/getAntiForgeryToken/{oldCookieToken?}")]
    public HttpResponseMessage GetAntiForgeryToken(string oldCookieToken = null) {
        var model = new AntiforgeryDto();
        string newCookieToken;
        string newFormToken;
        AntiForgery.GetTokens(oldCookieToken, out newCookieToken, out newFormToken);
        model.CookieToken = newCookieToken;
        model.FormToken = newFormToken;
        var response = Request.CreateResponse(HttpStatusCode.OK, model);
        response.Headers.AddCookies(new List<CookieHeaderValue>(){ new CookieHeaderValue("__RequestVerificationToken", model.CookieToken)});
        return response;
    }

虽然我不确定这种方法是否安全。我应该以某种方式验证请求令牌的客户端是移动应用程序吗?

0 个答案:

没有答案