2
我試圖跨域進行單向目錄同步(不信任)。理想情況下,我想使用現有的同步框架,如Microsoft Sync Framework 2.1,但無法弄清楚如何正確設置身份驗證。我想我需要使用NTLM傳遞身份驗證(描述爲here),但初始測試未顯示成功。同步框架 - 跨域的文件同步
我工作過的代碼看起來與此類似(基於關閉MSDN樣品):
SafeTokenHandle safeTokenHandle;
bool returnValue = LogonUser("xfrtest", ".", "password", 8, 2, out safeTokenHandle);
using (WindowsIdentity newId = new WindowsIdentity(safeTokenHandle.DangerousGetHandle()))
{
using (WindowsImpersonationContext ctx = newId.Impersonate())
{
sourceProvider = new FileSyncProvider(
sourceReplicaRootPath, filter, options);
destinationProvider = new FileSyncProvider(
destinationReplicaRootPath, filter, options);
SyncOrchestrator agent = new SyncOrchestrator();
agent.LocalProvider = sourceProvider;
agent.RemoteProvider = destinationProvider;
agent.Direction = SyncDirectionOrder.Upload;
sourceProvider.DetectChanges();
destinationProvider.DetectChanges();
var results = agent.Synchronize();
}
}
我有「xfrtest」帳戶設置在本地使用相同的密碼兩臺機器。登錄對源系統(我也在運行該代碼)起作用,但在目標上失敗。
所以問題是......首先,是否可以使用Sync Framework來完成此操作?如果是這樣,我是否通過了傳遞錯誤?如果不是,那麼有什麼好的選擇建議?