我的雇主目前可以通过 Web 服务服务器上的 C# sqlDataAdapters 和 sqlCommands 或应用程序中的组件访问数据库。这些主要是 Windows 窗体应用程序,根据其功能在 Intranet 和 Internet 上运行。
我一直在研究 WCF,我觉得它很适合我们。我的经理也有一份 ILM(MS 身份生命周期管理服务器),他想用它来为我们所有应用程序的身份验证和授权提供 SSO 支持。
我们的应用程序从数据库请求数据,它主要在 dataTables 中返回。我知道集合更好,这只是使用的既定做法。因此,我试图找到一个安全的解决方案,通过 ILM 进行身份验证并将数据从 web 服务服务器返回到数据集中的客户端(首先,稍后迁移到集合)。
我的问题是这会起作用还是会太慢?
- 客户端调用 WCF 请求数据的例程
- WCF 服务器与 ILM 检查是否可以这样做
- WCF调用webServices服务器获取数据
- 数据集或集合传回客户端。
如果这可行,我将如何连接到 ILM 进行身份验证。有没有一种巧妙的方法可以在 Web.Config 文件中执行此操作,还是我必须自己在消息级别执行此操作?
提前致谢。
最佳答案
我熟悉 ILM。它不是身份验证服务。 ILM 的意思是 Identity Lifecule Manager,它很好地描述了它的功能。它可以配置新用户、取消配置旧用户,并允许您在身份存储之间复制身份数据。它还提供密码同步服务。您仍然使用 Active Directory 或 AD LDS(前 ADAM)或 AuthN 和 AuthZ 的其他目录。
虽然 ILM 存储了有关您的用户的全部数据,但强烈建议您不要直接访问该数据。
[编辑]
ILM 不提供 LDAP 服务。把它想象成一个管理者:它自己不做任何工作,它只是定期重新安排事情。当您的经理以电子邮件的形式移动数据时,它以帐户详细信息的形式移动数据。
ILM 是一种跨目录和数据库管理身份的工具。在单个商店、SQL、AD 或任何其他上下文中考虑 ILM 是没有意义的 - 它的工作是在商店之间编码数据。如果只有一家商店,那将无事可做。
这是一个典型的场景:您创建了一个名为 People 的 SQL 表,其中包含 firstName、lastName、jobTitle、department、uniqueID、startDate 和 endDate 列。 ILM 挂接到此表。它每天导入一次,并且有一个新行。 ILM 使用此行中的数据在 AD 中创建一个用户 ID,在 Domino 中创建另一个,在不同的 SQL 数据库中创建另一个。它使用 jobTitle 和 department 字段在 AD 中分配组成员资格,在 Domino 中分配邮件列表,在 SQL 中分配权限。
用户开始工作几周,然后辞职。您在表中设置了结束日期,ILM 会在下次导入时注意到这一变化。它更新 AD 帐户以在该日期过期并存储延迟操作以在 90 天后将其删除。 90 天后,它会删除该帐户。其他帐户也是如此。
您可以使用人事系统而不是 SQL 表,但是 (a) 它的格式通常不正确或维护不够及时,并且 (b) 他们通常很想让您访问他们的数据。
关于c# - WCF -> ILM -> Web 服务 -> SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1549895/