Ios 向本机移动应用程序提供反伪造令牌
我有一个ASP.NET WebApi解决方案,所有客户端都使用Forms Auth。我的MVC消费者正在使用以下各项:Ios 向本机移动应用程序提供反伪造令牌,ios,.net,asp.net-mvc,security,forms-authentication,Ios,.net,Asp.net Mvc,Security,Forms Authentication,我有一个ASP.NET WebApi解决方案,所有客户端都使用Forms Auth。我的MVC消费者正在使用以下各项: @Html.AntiForgeryToken() [System.Web.Http.HttpGet] [AllowAnonymous] [Route("api/getAntiForgeryToken/{oldCookieToken?}")] public HttpResponseMessage GetAntiForgeryToken(strin
@Html.AntiForgeryToken()
[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;
}
然后在我的所有API端点上,我通过WebApiValidateAntiForgeryTokenAttribute
验证是否在标头中设置了令牌
在开发iOS应用程序时,我决定将Cookie作为身份验证机制进行维护。如何在iOS客户端应用程序中生成此令牌
更新
基于此,我做了以下工作:
@Html.AntiForgeryToken()
[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;
}
[System.Web.Http.HttpGet]
[异名]
[路由(“api/getAntiForgeryToken/{oldCookieToken?}”)]
公共HttpResponseMessage GetAntiForgeryToken(字符串oldCookieToken=null){
var模型=新的抗真菌剂DTO();
字符串newCookieToken;
字符串newFormToken;
反胃。GetTokens(oldCookieToken,OutNewCookietoken,OutNewFormToken);
model.CookieToken=newCookieToken;
model.FormToken=newFormToken;
var response=Request.CreateResponse(HttpStatusCode.OK,model);
AddCookies(new List(){new CookieHeaderValue(“\uu RequestVerificationToken”,model.CookieToken)});
返回响应;
}
尽管我不确定这种方法是否安全。我是否应该以某种方式验证请求令牌的客户端是移动应用程序