目前我正在开发一个使用 Lightingswitch 的工具。这是一个非常简单的工具,将作为 Web 应用程序部署在 Windows Azure 或 Amazon 云服务上。 根据主机的不同,它将使用集成安全性或表单身份验证。 客户希望根据输入的数据生成一份简单的报告。 当我们试图阻止使用 SSRS 时,我们希望在 ASPX 页面中使用报告查看器来托管它。
这些是我想出/尝试过的东西,以及我遇到的缺点/问题:
使用报告托管一个单独的网络应用程序,并从 lightswitch 工具转发到该网络应用程序。 这样做的缺点是双重托管,如果使用表单身份验证,则报告需要另一个登录。
在 SL 应用程序中托管 aspx 页面。我可以简单地手动上传 aspx 页面来访问报告,但是,由于这些页面不包含在包中,它们将随着 Azure 角色回收而消失。
将页面添加到SL项目中,但部署后似乎无法访问。
我还没有尝试过的另一个选项是创建一个表单 Web 应用程序,并包含 LS 工具。
仍然使用 SSRS / Azure Reporting,但问题仍然存在。
欢迎就如何解决此问题提出任何建议/为我指出正确的方向。
提前谢谢大家
就我从您的回答中得到的信息而言,唯一烦人的问题是在通过 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。因此,您可以在多个子域上实现用户会话,避免重复登录。