我们有一个内部网asp.net Web应用程序,它使用OOTB ASP.net成员资格和角色提供程序。

现在我们计划通过将Web服务器移动到DMZ来将应用程序公开到Internet,如下面(糟糕的)文本图所示

             External                    Internal     
internet --- Firewall --- Web server --- Firewall --- App Server --- Database

                             DMZ                              Intranet

现在的问题是,由于内部防火墙,Web服务器上的asp.net成员资格和角色提供程序无法连接到sql server。

你以前遇到过这种情况吗?您是否会建议在内部防火墙中打开端口,以便Web服务器可以直接连接到SQL服务器?我还有什么其他选择(除了自己拧一个自定义提供商)?

有帮助吗?

解决方案

更改DMZ政策并打开端口通常非常困难。您可以更好地完成我的工作:在网络中公开WCF服务,并通过端口80上的HTTP与之通信。

与局域网人员零摩擦,我只是模仿.NET给我们的同样精确(虽然糟糕)的API:)

编辑:澄清一下,这意味着我有一个配置如下的RemoteRoleProvider:

<roleManager enabled="true" defaultProvider="RemoteRoleProvider">
   <providers>
      <add name="RemoteRoleProvider" type="MyCorp.RemoteRoleProvider, MyCorp" serviceUrl="http://some_internal_url/RoleProviderService.svc" />
   </providers>
</roleManager>

其他提示

我们在DMZ中有几个面向互联网的Web服务器,并且必须在我们的防火墙中打开隧道,回到我们需要与之交互的专用网络中的SQL服务器。我认为我们使用了端口1433以外的东西进行SQL连接。到目前为止,它运作良好,即没有安全漏洞。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top