在 lightswitch 网络应用程序中报告

问题描述 投票:0回答:1

目前我正在开发一个使用 Lightingswitch 的工具。这是一个非常简单的工具,将作为 Web 应用程序部署在 Windows Azure 或 Amazon 云服务上。 根据主机的不同,它将使用集成安全性或表单身份验证。 客户希望根据输入的数据生成一份简单的报告。 当我们试图阻止使用 SSRS 时,我们希望在 ASPX 页面中使用报告查看器来托管它。

这些是我想出/尝试过的东西,以及我遇到的缺点/问题:

  1. 使用报告托管一个单独的网络应用程序,并从 lightswitch 工具转发到该网络应用程序。 这样做的缺点是双重托管,如果使用表单身份验证,则报告需要另一个登录。

  2. 在 SL 应用程序中托管 aspx 页面。我可以简单地手动上传 aspx 页面来访问报告,但是,由于这些页面不包含在包中,它们将随着 Azure 角色回收而消失。

  3. 将页面添加到SL项目中,但部署后似乎无法访问。

  4. 我还没有尝试过的另一个选项是创建一个表单 Web 应用程序,并包含 LS 工具。

  5. 仍然使用 SSRS / Azure Reporting,但问题仍然存在。

欢迎就如何解决此问题提出任何建议/为我指出正确的方向。

提前谢谢大家

azure silverlight-4.0 reporting visual-studio-lightswitch
1个回答
0
投票

就我从您的回答中得到的信息而言,唯一烦人的问题是在通过 ASP.NET 报表查看器控件生成报表后需要重新登录。

由于 LightSwitch 和 ASP.NET 应用程序都在 IIS 上运行,您可能希望在多个子域之间实现会话共享的自定义逻辑。

假设您的应用程序有 reportingapp.com 域,而 LightSwitch 前端在

ls.reportingapp.com
上运行,报告在
rp.reportingapp.com
上运行。然后您首先必须指示 IIS 将 cookie 设置为公共域,在您的情况下是
reportingapp.com
。您可以在
web.config
文件中使用以下选项来访问它:

<httpCookies domain=".reportingapp.com"/>

注意:前导点对于跨子域的 cookie 可访问性很重要!

这个解决方案只能部分工作,因为你有两个 IIS 应用程序(LightSwitch 也算作一个 IIS 应用程序),而不是一个,并且 cookie 将被发送两次。但是您将能够在您的 ASP.NET 应用程序中使用

HttpCookieCollection
class 获取域的 cookie。因此,您可以在多个子域上实现用户会话,避免重复登录。

© www.soinside.com 2019 - 2024. All rights reserved.