我正在使用VS 2013 Asp.net 4.5.1并使用个人用户帐户选项创建内部webforms应用程序进行身份验证 . 我想使用LDAP对用户进行身份验证,并使用为“个人用户帐户”选项创建的SQL DB来保存用户信息和角色 . 我们没有Active Directory联合身份验证服务(AD FS),因此我无法使用内部部署身份验证方法 .
AD用户名将存储在SQL DB中
如何使用LDAP对用户进行身份验证,然后使用AspNet.Identity.EntityFramework从SQL DB获取用户信息和角色?
3 回答
你可以像这样一个例子使用这个实现,它是RavenDB的客户
UserStore
:Customizing ASPNET Authentication for RavenDB
这一系列视频解释了如何在.NET中使用安全性(第二个视频解释了如何操作) .
Customizing ASPNET Authentication with Identity
Brock Allen讨论了如何使用External Logins在他关于新身份模式的综合文章中实现"external login" .
Active Directory联合身份验证服务(ADFS)支持许多身份协议,包括SSO . 但是,如果它是's just POWA (plain ol' windows身份验证),IIS将支持开箱即用 . 您只需在web.config
Authentication
节点中指定Active Directory(AD)用户/ AD组,并利用Identity.Name
字段以延迟加载和/或请求缓存的方式查找用户的信息 .如果使用ADFS进行基于's claim'的身份验证,则可以使用Identity and Access Tool并选择"Use Local STS"选项来模拟其工作方式 .
为什么不在LDAP(ADLDS)中保留配置文件和角色? ADLDS可以很好地跟踪我觉得有用的多值属性 . ADLDS中的角色(组成员身份)是自发的(您可以查询成员的角色或查询用户的角色成员身份) . ADLDS还可以确保参照完整性 - 如果成员不存在,则不能在角色中拥有成员 . 我认为您通过在两个独立的商店中拥有帐户和配置文件或学会喜欢分布式事务协调器来面对一些严重的参照完整性问题 .