我们的工作站不是我们的SQL Server所在域的成员.(他们实际上根本不在某个领域 - 不要问).
当我们使用SSMS或任何东西连接到SQL Server时,我们将RUNAS/NETONLY与DOMAIN\user一起使用.然后我们输入密码并启动程序.(RUNAS/NETONLY不允许您在批处理文件中包含密码).
所以我有一个需要SQL连接的.NET WinForms应用程序,用户必须通过运行具有RUNAS/NETONLY命令行的批处理文件启动它,然后启动EXE.
如果用户意外直接启动EXE,则无法连接到SQL Server.
右键单击应用程序并使用"运行方式..."选项不起作用(可能是因为工作站并不真正了解域).
我正在寻找一种方法让应用程序在内部启动之前执行RUNAS/NETONLY功能.
有关RUNAS/NETONLY如何工作的说明,请参阅此链接:http://www.eggheadcafe.com/conversation.aspx?smessidid = 32443204&threadid = 32442982
我想我将不得不使用LOGON_NETCREDENTIALS_ONLY与CreateProcessWithLogonW