如何从域外的虚拟机对域上的SQL Server数据库进行身份验证?

n00*_*00b 6 intranet virtual-machine windows-authentication visual-studio-2010 sql-server-2008

我支持.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身份验证.

n00*_*00b 11

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

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

runas /netonly /user:<Domain>\<User_Name> "<Your_Program.exe>"
Run Code Online (Sandbox Code Playgroud)

或者,您可以在桌面上创建快捷方式,并将此命令设置为快捷方式目标.运行快捷方式/命令后,您会在提示时输入凭据,并且visual studio(或您喜欢的任何程序)将作为域用户运行.