asp.net-mvc – 如何在单个页面中使用两个AntiForgeryToken而不
发布时间:2020-12-16 03:49:14 所属栏目:asp.Net 来源:网络整理
导读:如何在一个页面中使用多个@ Html.AntiForgeryToken()? 当我把它放在远程主机上不起作用,只在本地! 我试图使用不同的字符串foreach伪造令牌 @ Html.AntiForgeryToken(“logoff_forgery”)但是当我在控制器中添加[ValidateAntiForgeryToken(Salt =“logoff_f
如何在一个页面中使用多个@
Html.AntiForgeryToken()?
当我把它放在远程主机上不起作用,只在本地! 我试图使用不同的字符串foreach伪造令牌 'System.Web.Mvc.ValidateAntiForgeryTokenAttribute.Salt' 'The 'Salt' property is deprecated. To specify custom data to be embedded within the token,use the static AntiForgeryConfig.AdditionalDataProvider property.' D:projectscodesanappCodeSanCodeSanControllersAccountController.cs 289 35 CodeSan 有谁知道如何使用静态AntiForgeryConfig.AdditionalDataProvider?如果是,请与我分享. 解决方法
正如它在描述中所述,Salt属性已被弃用.
这是IAntiForgeryAdditionalDataProvider的一个简单实现 public class MyAntiForgeryAdditionalDataProvider : IAntiForgeryAdditionalDataProvider { public string GetAdditionalData(HttpContextBase context) { return GenerateTokenAndSaveItToTheDB(); } public bool ValidateAdditionalData(HttpContextBase context,string additionalData) { Guid token = Guid.TryParse(additionalData,out token) ? token : Guid.Empty; if (token == Guid.Empty) return false; return GetIfTokenIsFoundInTheDBAndNotExpired(token); } private string GenerateTokenAndSaveItToTheDB() { var newToken = Guid.NewGuid().ToString(); //save it to the db return newToken; } } 你只需在Global.asax.cs中注册它 protected void Application_Start() { AntiForgeryConfig.AdditionalDataProvider = new MyAntiForgeryAdditionalDataProvider(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 设置登台和生产环境,最大限度地减少简单托管
- selectlist – asp.net MVC 4.0下拉列表中的选定值
- .net – 用Linkedin登录
- Asp.Net MVC – 重载动作方法
- asp.net-mvc – 部署Azure云服务的奇怪行为
- asp.net-mvc – 如何在Asp.net MVC中添加WebApi,然后在同一
- asp.net-mvc – Razor vs Webforms视图引擎,用于新的ASP.NE
- 锁定ASP .Net自定义成员资格提供程序中的用户
- asp.net-core – 如何将ASP.NET 5(vnext)从Beta5升级到Beta
- asp.net-mvc-3 – 如何在剃须刀视图中设置复选框?
推荐文章
站长推荐
热点阅读