我使用VS 2013 Asp.net 4.5.1并使用个人用户帐户选项进行身份验证创建了一个内部webforms应用程序。我想使用LDAP对用户进行身份验证,并使用为个人用户帐户选项创建的SQL DB来保存用户信息和角色。我们没有Active Directory联合服务(AD FS),所以我不能使用本地身份验证方法。
AD用户名将存储在SQL DB
如何使用LDAP认证用户,然后使用AspNet.Identity。EntityFramework从SQL数据库获取用户信息和角色?
您可以像使用示例一样使用此实现,它是RavenDB的客户UserStore
:
为RavenDB定制asp.net身份验证
这个系列的视频解释了如何在。net中使用安全性(第二个视频解释了如何做)。
使用身份自定义asp.net身份验证
Brock Allen在他关于使用外部登录的新身份模式的综合文章中讨论了如何实现"外部登录"。
Active Directory Federation Services (ADFS)支持很多身份协议,包括SSO。但是,如果只是POWA(普通的windows身份验证),IIS将立即支持它。您只需在web中指定活动目录(AD)用户/AD组。配置Authentication
节点,并利用Identity.Name
字段以惰性加载和/或请求缓存的方式查找用户信息。
If的声明基于使用ADFS的身份验证,您可以使用身份和访问工具并选择"使用本地STS"选项来模拟其工作原理。
为什么不在LDAP (ADLDS)中也保留概要文件和角色呢?ADLDS在跟踪多值属性方面做得很好,我觉得这很有用。ADLDS中的角色(组成员)是自反的(可以查询角色中的成员,也可以查询用户在角色中的隶属关系)。ADLDS还确保了引用完整性—如果成员不存在,则不能在角色中拥有成员。我认为您将面临一些严重的引用完整性问题,将帐户和配置文件放在两个独立的存储中,或者学会喜欢分布式事务协调器。