TFS 和 Active Directory - 组成员身份未及时填充到 TFS

TFS 和 Active Directory - 组成员身份未及时填充到 TFS

我正在使用 Active Directory 中的组来管理哪些用户可以访问 TFS 中的项目。我的问题是,即使 AD 在组中显示他们,甚至当我通过 TFS 查看谁是该组的成员时,它也会显示用户,但访问权限不会立即授予。

我尝试刷新 TFS 的工作进程,但没有成功。重启机器(TFS 服务器)似乎可以解决这个问题,但我无法在每次更改 AD 时都重启源代码管理。

我如何让 AD 更频繁地“发现”对 AD 的更改?截至目前,更改最终发生并且用户被允许进入项目需要不到 24 小时的时间。此外,这种情况发生在 TFS 2005 上,我们升级到 2008 后,这种情况仍然在发生。

有任何想法吗?

答案1

用户登录时会枚举组成员身份。当您在 AD 中更改用户成员身份时,用户需要注销/登录其计算机,以使更改对用户生效。我猜您提到的“24 小时内”是因为他们第二天要回来上班并登录计算机。

答案2

TFS 缓存 Active Directory 信息,默认情况下设置为每 60 分钟轮询一次 Active Directory。我通过在 C:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Services\web.config 中添加“IdentityUpdatePeriod”参数来缩短服务器上的间隔

当设置为 5 分钟时,我发现与 Active Directory 同步时出现一些错误,因此我将其更改为每 15 分钟运行一次(但仍然会偶尔看到错误...但至少我不必告诉用户等待一个小时)

前:

  <appSettings>
    <add key="ConnectionString" value="Data Source=[TFS_DATA_TIER_SERVER]\tfs;Initial Catalog=TfsIntegration;Integrated Security=True;Persist Security Info=False;Application Name=TeamFoundation" />
    <add key="eventingEnabled" value="true" />
    <add key="DetailedExceptions" value="false" />
    <add key="emailNotificationFromAddress" value="[email protected]" />
    <add key="smtpServer" value="[smtp_server]" />
  </appSettings>

后:

  <appSettings>
    <add key="ConnectionString" value="Data Source=[TFS_DATA_TIER_SERVER]\tfs;Initial Catalog=TfsIntegration;Integrated Security=True;Persist Security Info=False;Application Name=TeamFoundation" />
    <add key="eventingEnabled" value="true" />
    <add key="DetailedExceptions" value="false" />
    <add key="emailNotificationFromAddress" value="[email protected]" />
    <add key="smtpServer" value="[smtp_server]" />
    <add key="IdentityUpdatePeriod" value="0:15:0"/>
  </appSettings>

相关内容