我开发了一个MVC4 Code First应用程序,该应用程序位于安全的服务器环境中,它从表单中获取信息并处理它们。
一项新的要求已经出现,要求提交一些“公共/外部”表格,我正在寻找最好的方法。
表单模型非常复杂和深入,具有充足的继承性。
有人指出,现有内部信息的安全性至关重要。
因此,为了获取数据,我正在考虑创建一个WCF Web服务,将公共表单直接提交到内部,它只能提交。这样我们就不会冒着通过公共Web服务器暴露现有内部数据的风险。我需要从内部使用对象模型,因为有些是相同的,虽然略有扩展。例如。我的MasterForm模型,其他所有形式都继承。主人类型,表格中引用的不同类型的人从中继承。
这是一种好方法还是有更好的方法?
这是我目前所处的地方......并没有走得太远。 (道歉,如果图标等不是你通常所期望的,但希望你能得到这个想法;我没有Visio!)
到目前为止采用这种方法时,在序列化/反序列化无法确定的情况下,我遇到了继承模型的困难。我尝试在WebService旁边托管WCF数据服务以提交表单,但它不允许我使用数据服务中的模型通过WCF表单提交WebService提交。
答案 0 :(得分:0)
SOA绝对是走到这里的方式,而WCF将是.Net世界中合理的方法。
然而,这引发了一个围绕您的模型设计的问题。在应用程序域之间公开/共享“视图”(本质上就是您的表单对象)可能被视为糟糕的设计。
在这种情况下,我经常在服务层中公开相当基本的业务对象,并为每个应用程序域创建视图,将相关数据映射到每个视图模型。即我的WCF服务充当业务层,允许您的应用程序查询业务特定数据。
此外,请确保在将数据传递到WCF服务时使用HTTPS / SSL。这需要SSL证书,但您可以生成自签名证书,并忽略证书错误。如果您使用的是.Net 4.5,则可以使用新的BasicHttpsBinding。