c# - WCF -> ILM -> Web 服务 -> SQL Server

标签 c# sql-server wcf web-services ldap

我的雇主目前可以通过 Web 服务服务器上的 C# sqlDataAdapters 和 sqlCommands 或应用程序中的组件访问数据库。这些主要是 Windows 窗体应用程序,根据其功能在 Intranet 和 Internet 上运行。

我一直在研究 WCF,我觉得它很适合我们。我的经理也有一份 ILM(MS 身份生命周期管理服务器),他想用它来为我们所有应用程序的身份验证和授权提供 SSO 支持。

我们的应用程序从数据库请求数据,它主要在 dataTables 中返回。我知道集合更好,这只是使用的既定做法。因此,我试图找到一个安全的解决方案,通过 ILM 进行身份验证并将数据从 web 服务服务器返回到数据集中的客户端(首先,稍后迁移到集合)。

我的问题是这会起作用还是会太慢?

  1. 客户端调用 WCF 请求数据的例程
  2. WCF 服务器与 ILM 检查是否可以这样做
  3. WCF调用webServices服务器获取数据
  4. 数据集或集合传回客户端。

如果这可行,我将如何连接到 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/

相关文章:

c# - 在 Azure 上部署使用 ACS 的 MVC 应用程序

SQL - JOIN BETWEEN 与 WHERE BETWEEN

c# - 使用 WCF 和 Java 编写的 Web 服务

c# - 参数序列化——指定命名空间

c# - 如何在 WCF 中处理来自 SoapUI 的 gzip?

c# - 在三元运算符 C# 中转换为 Nullable 创建新变量?

c# - MVC2获取当前登录用户

c# - 线程中的异常处理

sql-server - 在 Coldfusion 构建器中连接到 SQL 数据库

sql - 使用 GROUP BY,选择每个组中 ID 最低的记录 ID