6

我正在支持一个 .NET 4.0 (Visual Studio 2010) Web 应用程序,该应用程序对驻留在我的工作 Intranet 上的 SQL Server 2008 数据库进行身份验证。应用程序使用 Windows 身份验证对数据库进行身份验证。如果我在我的主机上开发,那一切都很好,但我正在一个不在工作域上的虚拟机上开发。因此,当项目构建并运行时,它会抛出 SqlClient.SqlException

“登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。”

如果没有在我的主机上开发并放弃 VM,我可以做些什么来避免这个错误并成功地对数据库进行身份验证,以便我可以构建/运行 Web 应用程序?我愿意将我的凭据存储在本地某个地方,但最好不要在 TFS 源代码控制下的某个地方(如 web.config),因为我无法保持文件被签出,因为项目中有其他开发人员。

我尝试以其他用户身份(作为我工作域上的用户)运行 Visual Studio,但我收到“未知用户名或密码错误”错误。

请注意,将虚拟机添加到域(或通过 VPN 连接到域)不是选项。VM 必须保持在域之外。另请注意,虚拟机在域中的计算机上运行,​​并且 VM 使用共享连接。所以它可以访问 Intranet 但它不能对 SQL Server 执行 windows 身份验证。

4

3 回答 3

11

您可以以域上的用户身份运行 Visual Studio(或 SQL Server Management Studio)。诀窍是,您必须使用“runas”Windows 工具的“/netonly”选项,以便您可以在非域计算机上以域用户身份运行。

即,在命令提示符下运行此命令(填写您自己的条件):

runas /netonly /user:<Domain>\<User_Name> "<Your_Program.exe>"

或者,您可以在桌面上创建一个快捷方式,并将此命令设置为快捷方式目标。运行快捷方式/命令后,您会在出现提示时输入您的凭据,并且 Visual Studio(或您喜欢的任何程序)将以域用户身份运行。

于 2012-11-02T18:58:18.687 回答
0

From what I understand, you have several options:

  1. You could add a user account to the SQL db to allow password authentication
  2. Have the VM join the domain
  3. Create an SSH tunnel to the host SQL server port
于 2012-11-01T21:18:04.283 回答
0

如果可能,使用 vpn 连接加入域。Vpn 可以使用特定的域凭据连接您。如果 SQL Server 配置了混合身份验证,则替代方法是使用 SQL Server 身份验证进行连接。

于 2012-11-01T21:14:41.450 回答