首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reporting Services LocalReport和WIF

Reporting Services LocalReport和WIF
EN

Stack Overflow用户
提问于 2011-01-25 22:58:59
回答 2查看 2.8K关注 0票数 10

我有一个使用WIF进行身份验证的wcf WIF服务。此and服务的部分职责是生成报告并通过电子邮件发送。如果我只呈现包含数据的报表,那么一切都很好。如果我包含任何报告参数、报告常量,或者仅仅是DateTime.Now,我就会得到以下异常:

代码语言:javascript
复制
An error occurred during local report processing.Failed to load expression host assembly. Details: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed

我可以在不使用WIF的WCF服务中运行相同的报告,所以很明显,关于安全环境的一些东西是模糊的。

我真的不知道如何解决这个问题。有人能帮上忙吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-26 01:59:20

这是可行的:

代码语言:javascript
复制
var reportInstance = new LocalReport();
reportInstance.SetBasePermissionsForSandboxAppDomain(new PermissionSet(PermissionState.Unrestricted));

我真的不明白为什么。我确实理解该报告被授予了无法从WIF获得的权限,但我不明白这些权限是什么,或者为什么它需要这些权限。所以,我的回答是“给人一条鱼”,但其他人能通过解释更深层次的问题来“教人钓鱼”吗?

票数 16
EN

Stack Overflow用户

发布于 2012-03-20 16:40:08

我在一个MVC3/WinForms混合应用程序中遇到了同样的问题,它带有Windows身份验证。我花了一些时间尝试确定运行报告所需的最低权限。对我来说,这也是可行的:

代码语言:javascript
复制
var permissionSet = new PermissionSet(PermissionState.None);
var flags = SecurityPermissionFlag.Execution | 
            SecurityPermissionFlag.ControlPrincipal;
var permission = new SecurityPermission(flags);
permissionSet.AddPermission(permission);

ReportViewer.LocalReport.SetBasePermissionsForSandboxAppDomain(permissionSet);

根据你的偏执程度,你可能会觉得更多的锁定权限集更安全。

遗憾的是,我没有解释为什么这些特定的权限是必要的,也不知道在不同的情况下是否需要其他权限,但我希望这是有用的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4794968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档