首先我要说的是,我不太熟悉 AD 和 DMZ。
在我的公司,我们有一个 DMZ,里面有一台服务器,与内部网络隔离(只有几个开放端口)并暴露在网络上。有一些 IIS 应用程序正在运行,可以访问 SQL Server。
我想更新connectionstrings
、删除userId
和password
、使用Integrated Security = true
并向应用程序池设置适当的用户,以便从web.config
s 中删除明文/硬编码密码。
问题在于服务器无法识别用户,因为服务器不是 AD 域的一部分。
我很确定这种情况有一个干净的解决方案,但没有任何线索。我该怎么办?
答案1
我想更新连接字符串,删除用户 ID 和密码,使用 Integrated Security = true 并为应用程序池设置合适的用户,以便从 web.configs 中删除明文/硬编码密码。
正如其他人所说,如果系统未加入 Active Directory,则无法使用集成安全性。
您也不需要这样做,因为连接字符串可以加密。
在 web.config 所在的命令提示符下使用以下命令:
%SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pef connectionStrings "."
如果应用程序池在帐户下而不是本地系统下运行:
%SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -pa "NetFrameworkConfigurationKey" "accountusername"
如果一个服务器场中有多个 IIS 服务器,它们都需要具有相同的机器密钥,而且它们可能已经拥有相同的机器密钥。
更多信息:
答案2
在 DMZ 服务器上创建用户并将其分配给应用程序池。在 SQL 服务器上创建本地用户并在 SQL Management Studio 中授予其权限