以下帖子可能看起来相同,但在尝试提供所有解决方案作为答案后,我无法解决问题。 (Login failed for user 'DOMAIN\MACHINENAME$')
我正在部署一个asp.net网络应用程序,在我的IIS7开发服务器上的 Windows网络中启用了表单身份验证。我的SQL Server部署在同一网络中的远程盒子上,为远程连接打开了必要的TCP端口。所有域用户都可以访问SQL Server中的必要数据库。
现在,当我尝试运行我的网络应用程序时,出现以下错误:
用户' DOMAIN \ MachineName $' 的登录失败。
我已经在SQL服务器中为 NT AUTHORITY \ NETWORK SERVICE 提供了足够的权限。
我不想要在开发人员不断变化的情况下向SQL服务器中的' DOMAIN \ MachineName $' 授予任何权限用于各种测试目的的机器名称。
我使用的连接字符串是:
"Server=SQL-SERVER;Initial Catalog=MyDatabase;Integrated Security=SSPI;Persist Security Info=False"
SQL提供程序是System.Data.SqlClient
启用匿名和表单身份验证,因为我的网络应用包含login.aspx
。
答案 0 :(得分:5)
关键是,无论何时使用NT AUTHORITY\NETWORK SERVICE
作为应用程序池用户,系统都会将此网络转换为DOMAIN\MachineName$
。
我们所做的是通过将应用程序池的用户名设置为开发人员的名称,使用开发人员的用户名连接到计算机。
答案 1 :(得分:0)
我在Intranet环境中也遇到了相同的问题。解决方案很简单,但很难把握。通常,IT安全主管将为您提供活动目录服务帐户以登录到数据库。您可以使用ssms登录,但是在IIS中失败,因为IIS选择使用域/计算机名进行连接。因此,请设置自定义帐户,然后填写您的域/用户名和密码。
就是这样。您的Web应用程序将成功从IIS连接。