通過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代理訪問。