如何将集成安全性和自己的用户数据库与IIS / C#3.5混合使用?

时间:2008-12-11 20:52:39

标签: c# security iis authentication

是否可以在一个站点中混合所有这些访问控制?

我有要求说

  • a)必须允许来自AD的用户 访问,使用集成安全性
  • b)来自其他AD的用户必须是 允许访问;潜在的 登录
  • c)不在广告中的用户 应该能够创造一个新的 网站上的帐户。

现在,当然,我希望网站不关心用户的身份验证位置;只是他是。

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

我刚才在一个项目上做了类似的事情,它的工作原理如下:

我将应用程序设置为使用表单身份验证,并在IIS中启用匿名访问。

我创建了一个标准的表单身份验证登录页面,该页面接受用户ID和密码来执行非集成登录。

我还为集成安全登录创建了一个特殊的.aspx页面,并且只设置一个页面在IIS中使用集成安全性(而不是匿名访问)。此页面根据IIS中的凭据手动创建了表单身份验证票证。

在主要的Forms Authentication登录页面中,我查看了请求中的传入地址,看它是否来自LAN,如果是,则重定向到集成安全登录页面(因此用户没有被提示用户) ID和密码,它只是使用集成安全性登录它们。

我还使表单身份验证登录页面足够智能,根据您的用户ID确定您是否是AD用户,并对AD执行LDAP查找(如果是)以检查您的密码。这使具有AD帐户的用户即使不在LAN上也可以使用其AD凭据进行日志记录(因此不使用集成安全性)。对于非AD用户,验证是针对应用程序维护的单独用户ID和密码哈希列表完成的。

答案 1 :(得分:0)

我认为有一个answer from the man himself。基本上你应该使用通常的asp.net会员提供者模型。但是创建自己的自定义提供程序来包装活动目录和sql提供程序。也许是两个不同的活动目录提供者。