0

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

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

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

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

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

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

  5. 仍然使用 SSRS / Azure 报告,但问题仍然是使用多个登录。

欢迎任何有关如何解决此问题的建议/为我指明正确的方向。

谢谢大家

4

1 回答 1

0

据我从您的回答中得知,唯一烦人的问题是需要在通过 ASP.NET 报告查看器控件生成报告后重新登录。

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

想象一下,您的应用程序有您的 reportingapp.com 域,而 LightSwitch 前端运行ls.reportingapp.comrp.reportingapp.com. 然后,您首先必须指示 IIS 将 cookie 设置为公共域,在您的情况下是reportingapp.com. 您可以通过在web.config文件中使用以下选项来访问它:

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

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

这个解决方案只能部分工作,因为您有两个 IIS 应用程序(LightSwitch 也算作一个 IIS 应用程序),而不是一个,并且 cookie 将被发送两次。但是您将能够使用ASP.NET 应用程序中的HttpCookieCollection 来获取域的 cookie 。因此,您可以在多个子域上实现用户会话并避免重复登录。

于 2013-05-06T11:39:07.950 回答