gpt4 book ai didi

c# - 使用 Microsoft 报表查看器 : Request for the permission of type 'System.Security.Permissions.SecurityPermission' Failed

转载 作者:太空狗 更新时间:2023-10-29 23:36:56 25 4
gpt4 key购买 nike

问题总结

我支持使用 Microsoft.ReportViewer 库的旧版 ASP.NET Intranet Web 应用程序。

运行时,报告抛出以下错误:

An error has occurred during report processing.

The Sort expression for the grouping ‘list1_Details_Group’ contains an error:

Request for the permission of type:'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

我所有的研究都表明这个问题是由于应用程序没有必要的信任级别(所有相关的堆栈溢出问题都通过将信任级别设置为完全来解决的)引起的,但是我的网络配置将信任级别定义为完全,所以我'我完全不知道为什么会发生此错误。

出于安全原因,我不能显示所有的网络配置,但大部分都可以在这里找到:http://pastebin.com/GdJhHDhH任何遗漏的内容都已被评论或 stub 。

可能有用的详细信息

将应用程序从 Forms 身份验证迁移到 Windows 身份验证后出现此问题。不一定相关,但很难忽视巧合。

这个问题在我的所有环境中都存在:本地、开发和生产环境(将生产环境转回到 Forms Authentication 可以解决这个问题)。

该应用程序是用 .Net 4、C# 编写的

报告代码位于与 Web 应用程序不同的程序集中,Web 应用程序引用报告程序集。

Web 应用程序在与报告无关的应用程序的其他区域成功地从数据库中检索了其他数据。

我对此束手无策,任何指导都会很棒。

更新:尝试的解决方案

尝试删除 list1_Details_Group。完成此操作后,报告的另一部分将引发相同的异常。

尝试通过 Windows 身份验证使用模拟。该应用程序继续以相同的方式工作,同时在报告中抛出相同的异常。

强烈尝试命名应用程序中使用的所有程序集。否 应用程序继续以相同的方式工作,同时在报告中抛出相同的异常。

尝试在 IIS 中使用“经典”托管管道。

最佳答案

好的,我知道这是一个旧帖子。但是我开始遇到完全相同的问题并且找不到任何已发布的解决方案,所以我将我的解决方案发布在这里。

ASP.NET 4.5,ReportViewer 11。从表单例份验证转移到 Windows 身份验证。报表中的排序在 Forms 身份验证中工作正常,但我在 Windows 身份验证中遇到安全/权限错误。

我能够在 Windows Server 2012 R2 以及本地 Windows 10 开发环境 (Visual Studio 2015) 上重现上述内容。

我发现,只有在使用 SortExpression 对多列进行排序时,我才会遇到这个问题,如下所示:

=Fields!glp.Value & Fields!building_number.Value & Fields!room_number.Value

如果我只是对没有排序表达式的字段进行简单排序,一切正常。

我的 Web.config 中有完全信任集 和所有相关属性 — 显然,因为它适用于 Forms 身份验证。

解决方案

要解决此问题,请按如下方式设置沙箱的权限:

rvReservations.ProcessingMode = ProcessingMode.Local;
LocalReport local_report = rvReservations.LocalReport;
local_report.ReportPath = "Reports\\rReservations.rdlc";
local_report.DataSources.Clear();

local_report.SetBasePermissionsForSandboxAppDomain(new System.Security.PermissionSet(System.Security.Permissions.PermissionState.Unrestricted));

Note: You will get the same behavior if you are passing parameters to your report; the same solution also applies.

关于c# - 使用 Microsoft 报表查看器 : Request for the permission of type 'System.Security.Permissions.SecurityPermission' Failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com