我在一个使用FormAuthentication.SlidingExpiration的网站上工作。我的理解是,这是通过使用FormsAuthentication Action在过期期过半后拦截第一个调用来设置新的过期时间来实现的。
如果第一个请求是GET,那么就没有问题。
如果第一个请求是在字段中包含html的表单的POST,那么FormAuthentication操作本身就会出错,因为它认为正在发出危险的请求。这发生在它到达预期的Action之前,该Action被修饰为允许特定变量使用html。
以前有人遇到过这种情况吗?或者对如何保留SlidingExpiration的使用并仍然能够发布html值有什么想法?
要分享我们在解决此问题时学到的知识:从本质上讲,MVC框架包含两个Forms Authentication副本,一个执行验证,另一个不执行验证。两者都仍然存在于框架中,因此MVC代码在本机遇到上述问题时可以继续运行。为了解决这个问题,我们需要确保我们使用的是第二个版本:
<httpRuntime。。。targetFramework="4.7.1"requestValidationMode="2.0"/>