![](/img/trans.png)
[英]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.