Active Directory安全组和用户角色更改的时间延迟

时间:2015-06-09 10:40:24

标签: asp.net-mvc active-directory windows-authentication

我正在使用Active Directory为我的Web应用程序中的用户分配角色。 但是,我发现在更改AD中的用户安全组分配与传播给正在使用该应用程序的用户的更改之间似乎存在很长时间的延迟。 实际上,当我从AD检索C#中的用户角色时,它们是最新的,但是当我运行此代码来查看用户的角色时,它们直到第二天才会更新。如何从AD即时进行用户角色更新?

Foreach[T]

2 个答案:

答案 0 :(得分:2)

这是因为Kerberos授权信息存储在本地计算机(您的应用服务器)的缓存中,因此您可能无法获得 NOT 最新数据。

您有两个选择:

  1. 强制您的服务器上更新票证授予票证(TGT)
  2. 使用UserPrincipal.GetAuthorizationGroups使您的论坛不是来自应用服务器,而是来自AD。

答案 1 :(得分:0)

请记住,用户的令牌仅在他再次登录时更新。 AD会立即将用户显示为组成员,但用户只有在组的SID位于其令牌中后才能行使这些权限。

因此,您需要检查AD以查看用户是否是特定组的成员,或者您必须等到用户在完成并复制组分配后登录。