【问题标题】:MS Lightswitch 2013 - Windows Authentication causes Errors in MS ReportviewerMS Lightswitch 2013 - Windows 身份验证导致 MS Reportviewer 出现错误
【发布时间】:2016-01-19 21:49:19
【问题描述】:

我正在为我们的网站使用 VS Lightswitch 2013。我使用 MS ReportViewer 实现了报告并创建了几个报告,其中一些报告的字段使用数据集中的原始字段,而其他字段我使用表达式来生成所需的字段值。这些已经运行了几个月,没有任何问题。

最近,我在站点中添加了 Windows 身份验证。在此实施过程中,我没有对我的报告功能进行任何更改。现在使用表达式生成的字段不起作用。呈现报告时显示为“#Error”。报告的其余部分生成没有问题。

以下是我运行的一些测试示例:

="Hello" & "World" 呈现“Hello World

=Fields!FirstName.Value 呈现“John

="Hello" & Fields!FirstName.Value 呈现“#Error”。

=Fields!FirstName.Value & Fields!LastName.Value 呈现“#Error”。

当我禁用身份验证时,此表达式返回正确的值。启用身份验证会呈现这些各自的值 = "#Error"。

在实施 Windows 身份验证之前,我检查了版本中的变更集,并且报告正常工作。下一个版本是 Windows 身份验证版本,这就是报告开始中断的地方。就像我说的那样,在发布期间,报告方面没有其他变化。

谁能提供一些关于为什么身份验证会破坏报告的见解?

请帮帮我欧比万。你是我唯一的希望!

【问题讨论】:

  • 您是否使用 Syncfusion 报告查看器在 LightSwitch HTML 客户端中呈现此报告?
  • 不,我使用的是 .Net 附带的内置 Microsoft ReportViewer。我有另一个用 ASP.net MVC 编写的站点,它也使用 MS ReportViewer 实用程序。这不会给我任何问题。我想知道这是否与 LightSwitch 有关。

标签: .net visual-studio-2013 reportviewer visual-studio-lightswitch


【解决方案1】:

在托管 Reportviewer 的网页的 Page_Load 事件处理程序中尝试以下操作:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            // ...your code that fetches the data and initializes your ReportViewer Control...


            this.ReportViewer1.LocalReport.SetBasePermissionsForSandboxAppDomain(AppDomain.CurrentDomain.PermissionSet.Copy());




        }
    }

【讨论】:

  • 谢谢@JeanPierreChauny!我尝试了您的解决方案,并且效果很好!我最终找到了一个类似的解决方案link,它也对我有用,但我更喜欢你的解决方案,因为它是 1 班轮。非常感谢您的解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多