我们有一个 Intranet 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 服务器。
您以前遇到过这样的情况吗?您是否建议在内部防火墙中开放端口,以便 Web 服务器可以直接连接到 SQL 服务器?我还有什么其他选择(除了自己编写自定义提供程序)?
最佳答案
更改 DMZ 策略和开放端口通常非常困难。执行我所做的操作可能会取得更好的成功:在网络内公开 WCF 服务并通过端口 80 上的 HTTP 与其进行通信。
与 LAN 人员零摩擦,我只是模仿 .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 服务器的 ASP.Net 提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/226392/