【问题标题】:Suggesion on Active Directory Integration with Asp.Net MVC 4关于 Active Directory 与 Asp.Net MVC 4 集成的建议
【发布时间】:2015-10-31 03:19:27
【问题描述】:

我知道有很多关于 Active Directory 集成的帖子,但我不是在这里询问集成的方法(我已经找到),我只是想讨论是否可以优化我的方法,所以这里是基本要求: 我正在开发 MVC4 应用程序,客户端只是要求我将 Active Directory 的所有用户保存在我们的 UserProfile 表中,每当有新用户添加到 Active Directory 时,它都应该反映到 UserProfile 表中。

我的方法:我将构建一个调度程序来获取活动目录用户(使用 System.DirectoryServices 命名空间)并检查活动目录中的用户数量,如果增加了,我会将新的活动目录用户添加到我的数据库。 现在我想提出一个建议,如果可能的话,是否有任何直接的方法可以在我的 sql server UserProfile 表中反映新的 Active Directory 用户,那么我不需要创建调度程序,它将是更轻量级的过程。

提前致谢

【问题讨论】:

    标签: c# asp.net-mvc active-directory


    【解决方案1】:

    如果活动目录发生更改,您应该能够在 sql server 中安排一个过程来更新您的表。您可以使用唯一键来加入和合并数据,并让它每天、每周、每小时等运行一次。这就是我目前用于同一件事的方法。它工作得很好,没有应用程序需要在幕后运行。

    【讨论】:

      【解决方案2】:

      取决于对象的数量不是要走的路。考虑添加一个新用户并删除另一个用户的情况。尽管发生了一些您需要获取的更改,但计数仍然相同。

      一种方法是使用DirectorySynchronization class。此类允许您将更改与活动目录同步。

      第一次使用它时,它会给你所有你想要的对象(基于一些过滤器),它还给你一个同步令牌。然后,您将该令牌存储到某个存储中。下次您进行同步时,您为此类提供令牌,以便它知道您当前拥有的内容并只为您提供差异。请参阅引用的 MSDN 参考中的示例。

      在使用此 API 时,您需要了解一些事项。我建议你先阅读它。 This link 包含一些您需要注意的信息。

      【讨论】:

      • 非常感谢.. 还有一个问题我检查了链接,它们是文件中的强同步 cookie,后来工业化它.. 1. 如果这个 cookie 是持久的?(我的意思是我想要每 30 分钟运行一次调度程序)2. 如果将此 cookie 值存储在数据库中,它将起作用。
      • 1.是的,您应该将 cookie 存储在持久存储中。请注意,每次进行同步时,DirectorySynchronization 类都会给您一个新的 cookie,您需要存储最新的 cookie(并丢弃旧的)。 2.是的,您可以将其存储在数据库中。请阅读我提供的第二个参考资料中关于存储内容和存储位置的注释。
      猜你喜欢
      • 2020-09-08
      • 2019-12-17
      • 2020-02-24
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      相关资源
      最近更新 更多