当SQL Server以域帐户而不是SYSTEM或NETWORK SERVICE的身份运行时,SQL CLR功能无法模拟
|
我在一个测试箱上完美运行了以下代码,该测试箱将MSSQLSERVER服务作为SYSTEM运行:
currentIdentity = SqlContext.WindowsIdentity;
impersonatedIdentity = currentIdentity.Impersonate();
client.PreAuthenticate = true;
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Url = currentURL;
/* Encrypt */
try
{
encryptedText = client.Encrypt(plainText);
}
finally
{
if (impersonatedIdentity != null)
{
impersonatedIdentity.Undo();
}
}
return encryptedText;
此功能的基本思想是通过内部托管的Web服务加密/解密文本。每当在运行MSSQLSERVER服务的服务器上以\'SYSTEM \'或其他一些本地帐户调用此函数时,模拟都可以正常工作。如果服务器将MSSQLSERVER服务作为域帐户(即DOMAIN \\ sqlaccount)运行,则\'DOMAIN \\ sqlaccount \'的凭据将始终传递到Web服务,并且模拟似乎无法正常工作。
这是预期的行为吗?提前致谢。
没有找到相关结果
已邀请:
3 个回复
妊辽剁茧
闪脖
缔恃钨