【发布时间】:2021-09-13 08:41:02
【问题描述】:
我需要编写一个应用程序,该应用程序将执行一些小的 AD 维护(基本上以文本文件的形式从另一个应用程序获取键/值对列表(AD 用户名和从 SQL 数据库中获取的值)。文本文件中的值将作为每个用户的自定义属性存储在 AD 中。不幸的是,提供应用程序不会生成所有用户的列表;只有那些在相关字段中有值的用户,所以任何有一个值但现在没有出现在列表中 - 这意味着我不能使用列表直接删除属性值,只能添加或修改它。
如果我可以使用 SQL Server,我将只拥有一个包含所有用户的表和一个包含值的用户表(由其他应用程序提供),并使用 SET 语句将所有未出现在提供的列表,然后是另一个 SET 来填充确实出现在提供的列表中的所有用户的值。
我是 C# 新手,我不知道用来模拟 SET/SET 功能的最佳方法;我可以读取 AD 以获取所有用户,我可以读取文件以获取现在要设置值的用户,但理想情况下,我希望将它们读入两个“表”并使用某种比较来设置并根据需要取消设置属性。我想不出一个网络搜索查询来找到我需要的东西(我的 Google-fu 对于我刚接触的主题很弱),所以任何关于最佳方式的建议都会非常感激。
示例:
原始广告列表:
AD Username Madeup Attribute
------------------------------
abc1 value1
bcde {no value}
fgh value2
提供的列表:
AD Username Madeup Attribute
---------------------------------
bcde value3
fgh value4
产生的 AD 值:
AD Username Madeup Attribute
--------------------------------
abc1 {no value}
bcde value3
fgh value4
如果我的解释不够清晰,我深表歉意 - 似乎是我的“(许多)弱点之一。
【问题讨论】:
-
所以你可以阅读广告,你可以阅读文件?它只是连接你被卡住的两个?在读取文件时如何临时存储文件中的值?如果你给我们一些你所拥有的代码 - 它会给我们更多的参考框架。
-
这似乎不是一个合并操作,它是一个替代品?文件总是胜过广告?将文件读入
Dictionary<T,U>,枚举AD,如果字典不包含广告用户,则将属性值设置为空,如果字典包含则更新值并删除字典条目。在操作结束时决定如何处理任何剩余的字典条目(添加到 AD?) -
每个用户在文件中有一个或多个属性?
-
@AndrewCorrigan - 抱歉,我还没有任何代码,因为我无法决定使用方法。就像我说的,我是新手,我通常的方法不适合我。
-
@CaiusJard - 是的,就是这样;该文件总是获胜,但数据不完整。没有必需属性的任何用户都不会在文件中拥有条目。我可以为所有用户清空该属性,然后处理该文件,但我想要比这更优雅、更全面的更好。
标签: c# custom-lists