当前位置: 首页 > news >正文

甜品制作网站医院网站建设官网

甜品制作网站,医院网站建设官网,婚恋网站模板,深圳百度seo怎么做咨询区 Guilherme Ferreira#xff1a;我通过 post 方式向我的一个webapi中提交数据#xff0c;然后插入到数据库中#xff0c;在 ui端#xff0c;当用户点击某一个 button 之后#xff0c;代码会将 button 禁用#xff0c;但因为某些原因#xff0c;点击按钮的速度比禁… 咨询区 Guilherme Ferreira我通过 post 方式向我的一个webapi中提交数据然后插入到数据库中在 ui端当用户点击某一个 button 之后代码会将 button 禁用但因为某些原因点击按钮的速度比禁用按钮的函数还要快这就造成了post两次的情况也就插入了两条同样的数据。在客户端我用 axios 来做 post 提交请问我如何在 server 端规避这种事情回答区 Christian Gollhardt前段时间刚好遇到了这个场景我创建了一个 ActionFilter然后使用了 Anti Fogery Token 参考如下代码首先启用 session。services.ConfigureCookiePolicyOptions(options {// This lambda determines whether user consent for non-essential cookies is needed for a given request.options.CheckConsentNeeded  Context  false;options.MinimumSameSitePolicy  SameSiteMode.None;});services.AddMemoryCache();services.AddSession(options  {// Set a short timeout for easy testing.options.IdleTimeout  TimeSpan.FromMinutes(10);options.Cookie.HttpOnly  true;// Make the session cookie essentialoptions.Cookie.IsEssential  true;});然后就可以 use 了。app.UseSession();接下来定义一个防重复提交的 Attribute 。[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public class PreventDoublePostAttribute : ActionFilterAttribute {private const string UniqFormuId  LastProcessedToken;public override async void OnActionExecuting(ActionExecutingContext context){IAntiforgery antiforgery  (IAntiforgery)context.HttpContext.RequestServices.GetService(typeof(IAntiforgery));AntiforgeryTokenSet tokens  antiforgery.GetAndStoreTokens(context.HttpContext);if (!context.HttpContext.Request.Form.ContainsKey(tokens.FormFieldName)){return;}var currentFormId  context.HttpContext.Request.Form[tokens.FormFieldName].ToString();var lastToken    context.HttpContext.Session.GetString(UniqFormuId);if (lastToken.Equals(currentFormId)){context.ModelState.AddModelError(string.Empty, Looks like you accidentally submitted the same form twice.);return;}context.HttpContext.Session.Remove(UniqFormuId);context.HttpContext.Session.SetString(UniqFormuId, currentFormId);await context.HttpContext.Session.CommitAsync();}}然后在需要该验证规则的 Action 上进行标注。[HttpPost] [PreventDoublePost] public async TaskIActionResult Edit(EditViewModel model) {if (!ModelState.IsValid){//PreventDoublePost Attribute makes ModelState invalid}throw new NotImplementedException(); }关于如何生成 Anti Fogery Token可以看下msdn: https://docs.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?viewaspnetcore-2.2#javascript点评区 这是一个非常常见的需求除了这种做法通常用带有过期时间的cache来做也是可以的比如 3s 内只能有一个请求。
http://www.pierceye.com/news/543846/

相关文章:

  • 找人做网站被骗能立案吗阿里云专有网络做网站
  • 做别人一摸一样的网站犯法吗买一个网站多少钱
  • 网站建设介绍书网站转换率
  • 云浮各类免费建站商业街网站建设方案
  • 注册网站怎么注册不了网站诊断示例
  • 打电话沟通做网站美食网页模板免费下载
  • 网站可以做库存吗表白网页在线生成网站
  • wordpress全站301网络设计项目
  • 新建网站二级网页怎么做手机建行网站
  • 手机编辑WordPress博客唐山seo推广公司
  • 网站建设祥云平台高明网站设计案例
  • 做网站比较大的公司黑客入侵网站怎么做
  • 汕头网站建设哪里找网站建设找哪家好
  • 怎么做公司的宣传网站免费优化
  • 网站数据库模板下载中牟网络推广公司
  • 营销型网站有什么特点域名解析错误无法上网
  • 手机网站可以做英文版本吗惠州网络科技有限公司
  • 温州专业手机网站制作多少钱wordpress类似头条主题
  • 怎么做一个论坛网站wordpress 注册邮箱验证失败
  • 一家公司做两个网站百度四川营销中心
  • 网站群 主要功能如何自己创建网页
  • 大量增加告权重网站友链回提升网站权重吗官方网站下载地址
  • 哪家做网站的好google 网站营销
  • jsp网站 iisasp.net做的音乐网站
  • 网站特效怎么做的常州网站建设报价
  • 网站漂浮窗口代码麻涌东莞网站建设
  • icp许可证对网站的要求怎么不用wordpress
  • 四平市城市建设档案馆网站山东省建设业协会网站
  • js网站访问计数ui网上接单网站
  • 西安优秀高端网站建设服务商国外网站阻止国内访问怎么做