Asp.net 针对多个提供程序(SQl和AD)的表单身份验证

Asp.net 针对多个提供程序(SQl和AD)的表单身份验证,asp.net,sql,active-directory,asp.net-membership,forms-authentication,Asp.net,Sql,Active Directory,Asp.net Membership,Forms Authentication,我们有一个适用于内部用户和外部客户的应用程序。我们希望针对内部用户的AD和外部客户的sql成员身份进行身份验证。有人采取过类似的方法吗?另外,在非军事区,针对广告进行授权的最佳方式是什么?我更希望在dmz中有一个代理,负责对我们内部网络上的AD DC进行身份验证。有什么建议吗 蒂亚, 凯文我们也有类似的情况。我们的内部用户反对广告,外部用户反对亚当商店。与数据库方法不同,但相似之处在于它们有两个用户存储。我们针对AD的身份验证发生在安全区域,DMZ中的web服务器向安全区域发出webservic

我们有一个适用于内部用户和外部客户的应用程序。我们希望针对内部用户的AD和外部客户的sql成员身份进行身份验证。有人采取过类似的方法吗?另外,在非军事区,针对广告进行授权的最佳方式是什么?我更希望在dmz中有一个代理,负责对我们内部网络上的AD DC进行身份验证。有什么建议吗

蒂亚,
凯文

我们也有类似的情况。我们的内部用户反对广告,外部用户反对亚当商店。与数据库方法不同,但相似之处在于它们有两个用户存储。我们针对AD的身份验证发生在安全区域,DMZ中的web服务器向安全区域发出webservice调用以进行身份验证。不知道你在寻找什么,但你的方法听起来不错

编辑以回答评论:

  • ADAM存储未与数据库同步
  • 基本上,Web服务配置为使用两个提供者,每个商店一个。事实上,当用户从遗留系统迁移时,在一段时间内有三个。为了确定用户在哪个存储中,应用程序只需首先询问最常见的提供者(在我们的例子中是ADAM),如果用户不存在,它将移动到下一个提供者
  • 端点是位于防火墙内、运行在中间层服务器上的Web服务。该服务器确实运行IIS,所以从技术上讲它是一个Web服务器,但实际上是我们的中间层服务器,因为它不提供任何页面,也不承载除少数Web服务以外的任何内容
  • 听起来你有两种类型的外部用户。真正的内部用户(在AD中)和真正的外部用户(在DB中)。这不是很优雅,但您可以有2个登录屏幕,每个屏幕一个。不要将内部用户的外部登录屏幕发布给除他们之外的任何人,而是将真实的外部登录屏幕发布给teh world。有点不太对劲,但可以用。否则,您的登录过程将需要标识用户的类型

您使用了什么方法来确定哪个商店用户进行了身份验证?或者ADAM db是否与您的广告同步?Webservice方法很有趣,它是基于您可以共享或专有的东西吗?如果你不能共享源代码,你能共享架构吗?端点是防火墙内的另一个web服务器,还是你们创建了一个windows服务作为端点?在我们的例子中,内部用户主要是外部用户。因此,他们以与外部客户相同的方式访问Web服务器。我只希望他们能够使用他们的广告凭据,而不是在Web服务器上有一个单独的帐户和密码。我希望避免在防火墙内创建一个单独的web服务器,并让“内部”用户登录到它,等等。