2

我正在使用具有自定义安全框架的自定义 .Net 应用程序。除其他外,该框架使用户身份验证能够无缝传递到 SQL Server Reporting Services 以访问查看器中的报表。但是,对于某些用户,我收到以下错误:

2013-07-03 11:43:00,580 Default.Page_Load(:0) - 初始化 ReportServer 网址:' https://www.DOMAIN.com/ReportServer ' 2013-07-03 11:43:00,696 ReportNavigation.LoadReportCatalog(: 0) - 从 Web 服务异常访问报告目录时出错:System.Net.CookieException 消息:cookie 的值大小为 '.ActionSecurity=AAAEAAAD_ _WOXBaR1Z1ZEdsMGVRaGZkbVZ5YzJsdmJndGZaWGh3YVhKbFJHRjBaUXBmYVhOemRXVkVZWFJsRFY5d2NtOTJhV1JsY2s1aGJXVUpYM1Z6WlhKT1lXMWxFMTlwYzBGamRHbHZia...'。这超过了配置的最大大小,即“4096”。资料来源: System.Net.CookieContainer.Add(Cookie cookie, Boolean throwOnError) at System.Net.CookieContainer.Add(Cookie cookie) 的系统
在 D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportServerProxy.cs: APPNAMEMM.Reporting.WebServiceClient.ReportServerProxy.GetWebRequest(Uri uri) 的 APPNAMEMM.Reporting.WebServiceClient.ReportServerProxy.GetWebRequest(Uri uri) 中的 APPNAMEMM.Reporting.WebServiceClient.ReportServerProxy.GetCookies() :\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportServerProxy.cs: APPNAMEMM.Reporting.WebServiceClient.ReportingService 处 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] 参数的第 71 行。 D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\Web References\ReportingService\Reference.cs 中的 ReportingService2005.ListChildren(字符串项目,布尔递归):APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetCatalogItemList 的第 871 行(字符串路径) 在 D:\APPNAME\Code\Core\APPNAMEMM.Reporting。WebServiceClient\ReportCatalogService.cs: APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(String path, Boolean showHidden, String subFolder) 的第 162 行在 D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportCatalogService.cs:line 116在 D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportCatalogService.cs 中的 APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(String path, Boolean showHidden):APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(字符串路径)在 D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportCatalogService.cs:ReportNavigation.LoadReportCatalog() 的第 81 行GetReportList(String path, Boolean showHidden, String subFolder) in D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportCatalogService.cs: APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(String path, Boolean showHidden) 的第 116 行在 D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportCatalogService.cs:D:\APPNAME\Code\Core\APPNAMEMM.Reporting 中 APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(String path) 的第 108 行。 WebServiceClient\ReportCatalogService.cs:ReportNavigation.LoadReportCatalog() 处的第 81 行GetReportList(String path, Boolean showHidden, String subFolder) in D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportCatalogService.cs: APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(String path, Boolean showHidden) 的第 116 行在 D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportCatalogService.cs:D:\APPNAME\Code\Core\APPNAMEMM.Reporting 中 APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(String path) 的第 108 行。 WebServiceClient\ReportCatalogService.cs:ReportNavigation.LoadReportCatalog() 处的第 81 行Boolean showHidden) 在 D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportCatalogService.cs: APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(String path) 在 D:\APPNAME\Code\Core\APPNAMEMM 的第 108 行.Reporting.WebServiceClient\ReportCatalogService.cs:ReportNavigation.LoadReportCatalog() 处的第 81 行Boolean showHidden) 在 D:\APPNAME\Code\Core\APPNAMEMM.Reporting.WebServiceClient\ReportCatalogService.cs: APPNAMEMM.Reporting.WebServiceClient.ReportCatalogService.GetReportList(String path) 在 D:\APPNAME\Code\Core\APPNAMEMM 的第 108 行.Reporting.WebServiceClient\ReportCatalogService.cs:ReportNavigation.LoadReportCatalog() 处的第 81 行

2013-07-03 11:43:00,749 ASP.global_asax.Application_Error(:0) - 发生了意外错误。(URL:/Income Reports/Default.aspx
表单字段:异常:System.Configuration.Provider.ProviderException 消息:无法检索此操作的当前 HttpContext。来源:APPNAMEMM.Web.Security 在 APPNAMEMM.Web.Security.ActionSecurity.DeleteCookie () 在 D:\APPNAME\Code\Core\APPNAMEMM.Web.Security\ActionSecurityProvider\ActionSecurity.cs:D:\APPNAME\Code 中 APPNAMEMM.Web.Security.ActionSecurityModule.OnLeave(Object sender, EventArgs e) 的第 265 行\Core\APPNAMEMM.Web.Security\ActionSecurityProvider\ActionSecurityModule.cs:System.Web.HttpApplication.RaiseOnPreSendRequestHeaders() 的第 192 行

我尝试根据一些建议更改应用程序以及 ReportServer 和 ReportManager 文件夹中的 web.config,包括http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimitshttp:// bartwullems.blogspot.com/2010/04/uploading-large-files-in-iis-7.html

但是,我仍然收到错误消息,并且用户无法访问报告。还有什么我需要做的吗?谢谢。

4

2 回答 2

2
  1. 你两个都设置了吗? http://forums.iis.net/t/1169846.aspx

  2. 但是,您得到的是 CookieException,而不是最大请求限制异常。以上设置与cookies无关。它们指的是文件上传到服务器。

  3. 好像你想把超过 4K 的内容塞进 cookie 中。如果是这样,您不能 ..这是系统限制 Web 浏览器的 cookie 密钥的最大大小是多少?..实际上您的里程可能因浏览器而异,但如果您在 cookie 中设置超过 4K,您可能需要更改策略,例如切换到会话。

  4. 对 N° 3 说“是”?您可以在此处更正错误..但您仍然可能会遇到问题 N° 3 :-)

取自您自己的堆栈跟踪This exceeds the configured maximum size, which is '4096' ... at System.Net.CookieContainer.Add(Cookie cookie) ... ReportServerProxy.cs:line 131


var container = new System.Net.CookieContainer {
    MaxCookieSize = 8192
};

container.Add(new System.Net.Cookie {
    Value = "somehugevalue"
});
于 2013-07-22T18:47:47.717 回答
0

您可以在限制localStorage时使用CookieStore

代码示例:

localStorage.setItem('ActionSecurity', '[largevalue]');

localStorage.getItem('ActionSecurity');

参考W3C学校

于 2013-07-26T08:28:37.137 回答