【发布时间】:2013-05-11 20:53:04
【问题描述】:
我正在编写一个需要多种形式的身份验证的应用程序。
应用程序需要支持对 Active Directory 的身份验证,但如果用户不在 Active Directory 中,则能够故障回复到 SQL 成员资格提供程序。我们可以根据提供的用户名在代码中处理 SQL Provider 的失败,因为用户名的格式与 Active Directory 用户名的格式不同。
这甚至可能吗?我的意思是,我可以使用会员资格并同时使用 ActiveDirectoryMembershipProvider 和 SqlMembershipProvider 还是我必须自己推出?
另一个额外的复杂性是,我希望根据 Windows 身份验证自动对我的内部用户进行身份验证,返回 AD,但对不在我们内部网络上的用户或使用 SQL 提供程序的用户使用表单身份验证。
这些很可能是单独的服务器,一个是内部的,另一个是外部的,所以我有很多计划要做,以弄清楚数据复制,以及如果 AD 用户访问外部服务器等,我将如何对其进行身份验证。
当我开始走这条路时,我想知道那里有什么想法。我想要做的事情甚至可以在没有我自己滚动的情况下完成,还是有办法将它们融合在一起?
感谢您的回复。
我最初询问的原因是因为我能够在大约 7 年前使用 IIS 进行身份验证,然后将凭据传递回 Lotus Domino 服务器 Web 应用程序,从而使这个特定的 senerio 工作。如果用户未通过 Windows 身份验证/ISS 进行身份验证,则 Domino 将处理身份验证。这就是我在这里想要做的,但真的想不出一种让它在 IIS 中工作的方法。
至于您的其余回复,我认为您正在走我需要采取的方式。我已经考虑过这一点,并在我的脑海中反复折腾。无论如何,两台服务器上的应用程序都会有所不同,因为无论如何都将有限地访问外部服务器上的数据。事实上已经有很多不同了,我可能只是将它们视为两个应用程序,因此不需要在同一个应用程序中使用两种类型的身份验证。
我正在考虑为外部服务器编写自己的身份验证/登录窗口的想法,如果用户尝试在外部服务器上使用其 AD 凭据登录,我将能够检测到并重定向它们到内部服务器。如果他们不在本地网络或 VPN 中,他们将根本无法访问。这部分还有一些思考过程,所以我不确定。
作为一个额外的想法 - 有没有办法将足够的 AD 提取到 SQL 数据库中,以允许我使用他们的 AD 凭据从外部服务器对 SQL 数据库的用户进行身份验证,而不会产生任何安全问题?我希望我清楚地输入我的想法......
再次感谢!
提姆
【问题讨论】:
-
自从这个问答已经快10年了。我想知道这个解决方案今天是否仍然适用于 IIS 8 和 Windows 7+?
标签: asp.net sql active-directory asp.net-membership membership