我的用户将对 Active Directory 或数据库使用表单身份验证。那里没有 Windows 集成身份验证!
我想要的是当用户提交身份验证表单时,它将尝试针对 Active Directory 验证用户,如果失败,请尝试使用数据库。
我怎样才能做到这一点?我的想法是构建一个自定义会员提供程序,它将封装逻辑,但我不知道如何开始。
有更好的主意吗?
我的用户将对 Active Directory 或数据库使用表单身份验证。那里没有 Windows 集成身份验证!
我想要的是当用户提交身份验证表单时,它将尝试针对 Active Directory 验证用户,如果失败,请尝试使用数据库。
我怎样才能做到这一点?我的想法是构建一个自定义会员提供程序,它将封装逻辑,但我不知道如何开始。
有更好的主意吗?
您将能够实现这一点的唯一方法是创建自定义提供程序。
在一个完美的世界中,您可以简单地创建一个外观提供程序,然后根据需要利用适当的提供程序、SQL 或 AD 来进行身份验证并返回MembershipUser
到您认为必要的任何程度的完整性。
在现实世界中,这仍然是可能的,但您需要跳过几个环节:
providers
元素中并将其设置为元素membership
中的 defaultProvidermembership
Membership.Providers
集合访问配置的提供程序以根据需要执行功能。如果你需要使用角色,你可能会发现你需要重复这个模式,虽然它适用,但实现会有点复杂,超出了本文的范围。
或者,可以在此处找到 SQL 提供程序的完整源代码,这是实施工业级自定义提供程序的一个很好的起点和指南。
我建议在尝试从头开始实施自定义安全功能之前,首先探索阻力最小的路径(以及最少的劳动和头痛)并增加外观。
祝你好运。