[英]How to unzip password-protected files using SSIS script task without third-party app?
[英]How to encrypt password in SSIS script task?
所以我在访问电子邮件的 SSIS 包中有一个脚本任务。
ExchangeService service = new Microsoft.Exchange.WebServices.Data.ExchangeService(ExchangeVersion.Exchange2010_SP1);
service.Credentials = new NetworkCredential("email@domain.com", "123");
我已经对包本身进行了加密,但仍然感到不安,因为它是 ScriptMain.cs 页面上的纯文本。 过去,我能够在 WPF 应用程序上加密这些数据,但不确定如何将其转换为脚本任务。 我是不是想多了? 有没有办法在连接管理器或其他可以增加一层保护的东西中设置它?
我想补充一点,我正在使用交换服务 API 连接到电子邮件。
您可以使用所谓的敏感包或项目参数; 映射到此类参数的环境参数以加密方式存储在 SSIS 目录中。 只需为您的密码创建一个并使用.GetSensitiveValue()
方法将其放入您的脚本任务中
Dts.Variables["$Package::YourPassword"].GetSensitiveValue().ToString()
正如马特·马森所描述的那样。
根据EWS 托管 API 客户端,“以本地 Exchange 服务器为目标的加入域的客户端可以使用登录用户的默认凭据,假设凭据与邮箱相关联”
所以你可以使用;
service.UseDefaultCredentials = true;
如果这是不可能的,我建议将其存储在要检索的数据库中。 您将能够在数据库中保护/加密它。
此外,如果您使用的是 SQL 2012 或更高版本,则可以使用敏感参数。 这是假设您要参数化密码和/或用户名。
public void Main()
{
try
{
string value = Dts.Variables["$Package::ExchangePassword"].GetSensitiveValue().ToString();
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception e)
{
Dts.Log(e.Message, 0, null);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.