asp.net-mvc-2 – 仅在运行调试器时出现Antiforgery令牌异常
发布时间:2020-12-16 09:59:49 所属栏目:asp.Net 来源:网络整理
导读:我有一个mvc2应用程序,它通过iframe提供内容. iframed页面只是一个表单.它有一个请求验证令牌.在开发人员使用Visual Studio 2005调试器之前,所有内容都能跨域运行.一旦他们这样做,我会得到以下错误详细信息. Exception: System.Web.Mvc.HttpAntiForgeryExcep
我有一个mvc2应用程序,它通过iframe提供内容. iframed页面只是一个表单.它有一个请求验证令牌.在开发人员使用Visual Studio 2005调试器之前,所有内容都能跨域运行.一旦他们这样做,我会得到以下错误详细信息.
Exception: System.Web.Mvc.HttpAntiForgeryException : A required anti-forgery token was not supplied or was invalid. Stack Trace: at System.Web.Mvc.ValidateAntiForgeryTokenAttribute.OnAuthorization(AuthorizationContext filterContext) at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext,IList`1 filters,ActionDescriptor actionDescriptor) at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName) Source: System.Web.Mvc Location: Void OnAuthorization(System.Web.Mvc.AuthorizationContext) Url: https://mydomain.com/Portal/Framed/NewQuickPay/yFkYAA!!-OSlvtw!!-4f560479-96f2-4578-8804-a757d4913f52 Path: D:InetpubwwwrootPortal Referrer: https://mydomain.com/portal/Framed/Index/yFkYAA!!-OSlvtw!!-4f560479-96f2-4578-8804-a757d4913f52/?amount=2861.43 Server Name: /* OMITTED */ IP Address: /* OMITTED */ User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDR; .NET4.0C; .NET CLR 1.1.4322) Is Authenticated: False Http Method: POST Form Data /* OMITTED */ __RequestVerificationToken EoJfaqoiWFUnbJFIQQeXoCeUdtVKpfX7RB0LfUXoTzRbrwK3ZYr6ZjT2ldsNGqVuB+3Vtc3uiRZoJiF+VAi7v7kdEy/sCb6jI9stzTzz/hRh3emTzBh61W9+GkFlEkxEVID8Bg== Cookies /* NONE */ 我们已经删除了所有cookie,重新启动了机器,重新启动了visual studio,但调试器仍然会导致此错误. 我已经向web.config添加了一个声明的机器密钥.我不确定它还能是什么.它只在调试器运行时发生,并且它们使用的是Visual Studio 2005. 解决方法
我找到了答案.我的内容是通过跨域iframe呈现的.根据
Adam Young,IE将自动阻止第三方cookie,除非您在标头中定义了P3P策略.
我添加了代码以将p3p策略注入标头,并从我在iframe中使用的每个操作中调用它.到目前为止,我们还没有看到这个错误出现.我希望这个解决方案可以帮助别人. public static void SetP3PCompactPolicy() { HttpContext.Current.Response.AddHeader("p3p","CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT""); } 我也定义了machine key,虽然我不确定是否有必要. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET FileUpload – 如何更改“浏览…”按钮说明的语言?
- ASP.Net的最佳免费文件管理器
- asp.net – 如何在控制器中获取路由URL?
- asp.net – 客户端缓存vs Cookie
- [WCF REST] 通过ASP.NET Output Caching实现声明式缓存
- asp.net-core – 如何在Asp.net Core中使用soap web服务?
- asp.net-mvc – ASP.NET MVC – IsPostBack还在吗?
- asp.net-mvc-3 – 模型绑定逗号分隔的查询字符串参数
- 如何在asp.net 3.5中使用NHibernate
- asp.net-mvc – MVC 4 SimpleMembership – 登录后为什么We
推荐文章
站长推荐
- asp.net 发布WebService出现的各种问题及解决方法
- asp.net – ScriptManagers的ScriptMode中Debug和
- asp.net-mvc-2 – 具有异常参数的ModelState.Add
- asp.net – 如何使IRouteConstraint过滤器路由
- ASP.NET MVC 3.0部分内部和外部表单具有不显眼的
- ASP.NET C#图形路径形状
- asp.net – 实体框架5在保存时停止运行T4模板文件
- 在ASP.NET中,HTML指令符号<%#或<%= etc?在服务
- ASP.NET MVC jquery自动填充值和文本字段
- Autofac MVC与ASP.Net MVC集成4
热点阅读