是否可以在一个站点中混合所有这些访问控制?
我有要求说
现在,当然,我希望网站不关心用户的身份验证位置;只是他是。
实现这一目标的最佳方法是什么?
答案 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提供程序。也许是两个不同的活动目录提供者。