我首先要说我对 AD 和 DMZ 并不是很熟悉。
在我的公司,我们有一个带有一台服务器的 DMZ,与内部网络隔离(只有几个开放端口)并暴露在网络上。有一些 IIS 应用程序正在运行,它们可以访问 SQL Server。
我想更新connectionstrings
,删除userId
和password
,使用Integrated Security = true
并为应用程序池设置一个适当的用户,以便从web.config
s 中删除明文/硬编码密码。
问题是服务器无法识别用户,因为服务器不是 AD 域的一部分。
我很确定这种情况有一个干净的解决方案,但没有线索。我应该怎么办?
正如其他人所说,如果系统未加入 Active Directory,则无法使用集成安全性。
您也不需要这样做,因为可以加密连接字符串。
从 web.config 所在的命令提示符处使用以下命令:
如果应用程序池在帐户而不是本地系统下运行:
如果场中有多个 IIS 服务器,它们都需要具有相同的机器密钥,它们可能已经这样做了。
更多信息:
https://docs.microsoft.com/en-us/aspnet/web-forms/overview/data-access/advanced-data-access-scenarios/protecting-connection-strings-and-other-configuration-information-cs
在 DMZ 服务器上创建一个用户并将其分配给应用程序池。在 SQL 服务器上创建本地用户并在 SQL 管理工作室中授予其权限