小编Sab*_*bre的帖子

使用[授权]时,请求超出配置的maxQueryStringLength

在此输入图像描述
我在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

javascript c# asp.net-mvc-3

120
推荐指数
4
解决办法
12万
查看次数

Array.Clone()(复制与否?)

我怀疑我只是误解了Array类的Clone()方法.但它会读取"创建System.Array的浅拷贝",所以我认为这意味着新的对象指针,而不是相同的对象指针......

以下真的应该发生吗?

假设一个测试对象......

public class testObject 
{
    public int propInt { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以及以下测试......

//create a the list
List<testObject> testList = new List<testObject>();

//add items to the list
testObject item1 = new testObject();
item1.propInt = 1;
testList.Add(item1);

testObject item2 = new testObject();
item2.propInt = 2;
testList.Add(item2);

//create what should be a COPY of the array
testObject[] testArray;
testArray = (testObject[])testList.ToArray().Clone();


foreach (testObject item in testArray)
{
    item.propInt++;
}

//check items in list
foreach (testObject item in testList)
{ …
Run Code Online (Sandbox Code Playgroud)

c# arrays clone

0
推荐指数
1
解决办法
2091
查看次数

标签 统计

c# ×2

arrays ×1

asp.net-mvc-3 ×1

clone ×1

javascript ×1