【问题标题】:Sync Framework - file sync across domains同步框架 - 跨域文件同步
【发布时间】:2014-02-23 16:53:12
【问题描述】:

我正在尝试跨域进行单向目录同步(不信任)。理想情况下,我想使用现有的同步框架,如 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 来做到这一点?如果是这样,我是否通过传递来接近它?如果没有,有什么好的替代品建议吗?

【问题讨论】:

    标签: c# authentication impersonation microsoft-sync-framework


    【解决方案1】:

    事实证明,这段代码确实有效。我的问题是我正在测试的非生产域具有信任,这导致 Windows 不会回退到 NTLM 直通身份验证。当我设置没有信任或非域机器的域时,这是可行的。

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多