通过VSTS构建项目,它使用vsts代理帐户(可以在安装vsts代理时指定)。首先,如果您使用您的vsts代理进行构建和测试,并且该计算机中的Windows帐户可以连接到SQL Server并读取数据,则可以模拟用户从SQL Server访问数据。
简单代码:
public static class Helper
{
[DllImport("advapi32.dll", SetLastError = true)]
public static extern bool LogonUser(
string lpszUsername,
string lpszDomain,
string lpszPassword,
int dwLogonType,
int dwLogonProvider,
out IntPtr phToken);
}
-
IntPtr userToken = IntPtr.Zero;
bool success = Helper.LogonUser(
"[user name]",
"[domain]",
"[password]",
2, //2
0, //0
out userToken);
if (!success)
{
Assert.Fail("Logon user failed");
}
using (WindowsIdentity.Impersonate(userToken))
{
//TODO connect to your sql server database
}
其次,如果使用的是托管代理,唯一的办法是,你需要使用SQL Server的帐户访问SQL Server数据库,并确保您的SQL Server实例可以从Hosted代理访问。