在非浏览器客户端调用时,在具有ValidateAntiForgeryTokenAttribute属性的方法上处理防伪的最佳方法是什么,比如WinForm?
根据我所知道的,下面是防伪的工作原理:
AntiForgery.Validate(token, cookie)以确认请求是合法的。在一个网络应用程序中,所有的功能都很好。它似乎在WinForm中不起作用。以下是我所做的:
HttpClient,我可以访问包含令牌的页面。__RequestVerificationToken。AntiForgery.Validate(xx,yy)失败时出错:是为用户X提供的防伪令牌,但当前用户是Y.发布于 2013-01-23 21:51:58
我想通了。它需要先执行表单身份验证,然后在随后的WebAPI调用中传递cookie。下面是修改后的流程:
1)使用HttpWebRequest (GET)加载登录表单
2)使用凭据在登录表单上发布信息。在cookiecontainer中提供HttpWebRequest
3)烹饪器现在包含Auth和__RequestVerificationToken
4)从后续的GET,甚至从登录结果的输出中获取__RequestVerificationToken
5)对于WebAPI Post呼叫,按原样传递炊具。还包括具有prev步骤值的头 __RequestVerificationToken。
https://stackoverflow.com/questions/14467804
复制相似问题