Sab*_*bre 120 javascript c# asp.net-mvc-3
我在C#中有一个MVC3站点,我有一个特殊的视图是从JavaScript函数提供查询参数,该函数通过以下方式重定向到站点
window.location.href ="../ ActionName?" + query_string;
query_string是JavaScript函数构建的动态查询参数字符串.
这种奇怪的原因是,有时相同的函数将URL传递给ASP.Net webform,因为它必须使用reportviewer控件,备用操作是保存一些参数,在这种情况下它传递给视图.(如果没有意义,可以详细说明)
整个工作正常,直到我将[授权]引入动作方法.如果它到位则中断,没有正常工作,并且[授权]在所有其他方法上正常工作.
在这种情况下,整个URL是966个字符长,在研究之后,默认情况下maxQueryStringLength值似乎是2048,但是可以覆盖到任何类型为integer的值,所以只是对于grins,我添加了
<security>
<requestFiltering>
<requestLimits maxQueryString="2048"></requestLimits>
</requestFiltering>
</security>
Run Code Online (Sandbox Code Playgroud)
密钥下的Web配置文件的密钥.
那里没有欢乐,所以我变得荒谬,并使它成为4096,仍然没有快乐.
现在整个URL长度为966个字符,授权属性不能严重添加另一个1082-3130字符,因此如何确定错误实际是什么,或者为什么设置没有生效.
VS2010 Pro SP1
the*_*erm 203
在web.config
项目的根目录下,在system.web
节点下:
<system.web>
<httpRuntime maxUrlLength="10999" maxQueryStringLength="2097151" />
...
Run Code Online (Sandbox Code Playgroud)
另外,我不得不在system.webServer
节点下添加它,或者我的长查询字符串出现了安全性错误:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxUrl="10999" maxQueryString="2097151" />
</requestFiltering>
</security>
...
Run Code Online (Sandbox Code Playgroud)
cou*_*ben 70
当未经授权的请求进入时,整个请求都是URL编码的,并作为查询字符串添加到授权表单的请求中,因此我可以根据您的情况查看这可能导致问题的位置.
根据MSDN,在web.config中修改以重置maxQueryStringLength的正确元素是<httpRuntime>
元素内部的<system.web>
元素,请参阅httpRuntime元素(ASP.NET设置架构).尝试修改该元素.
小智 7
我使用 datatables.net 时遇到此错误
我修复了在 DataTable() 的 te 属性中更改默认 ajax Get 到 POST 的问题
"ajax": {
"url": "../ControllerName/MethodJson",
"type": "POST"
},
Run Code Online (Sandbox Code Playgroud)
小智 5
对于可能遇到此问题且无法通过以上两个选项之一解决的其他任何人,这对我来说是有效的。
1. Click on the website in IIS
2. Double Click on Authentication under IIS
3. Enable Anonymous Authentication
Run Code Online (Sandbox Code Playgroud)
我禁用了此功能是因为我们使用的是自己的Auth,但这导致了同样的问题,并且被接受的答案没有任何帮助。
归档时间: |
|
查看次数: |
121164 次 |
最近记录: |