具有成员身份授权的.net活动目录(ldap)身份验证

时间:2014-10-29 23:20:12

标签: .net vb.net active-directory ldap asp.net-membership

我正在尝试创建一个混合成员资格,它使用活动目录(ldap)进行身份验证,但使用成员资格提供程序和角色进行授权。

我不想为每个页面加载查询活动目录,但我想最初通过活动目录对用户进行身份验证,然后允许成员资格提供程序通过web.config授权属性授权用户访问每个页面。

我是.net会员模型的新手,以及如何实现这种混合解决方案。我找到了许多使用Web窗体实现Active Directory的示例,但不能解决我的需求。

此解决方案的任何伪代码或一般描述也非常受欢迎。

谢谢!

更新问题:目前正在寻找在Membership / Roles架构之上实现Active Directory(AD)身份验证。基本上最初使用AD进行身份验证,根据需要使用用户/角色更新成员资格数据库表,将用户设置为使用成员身份验证并允许成员资格处理所有授权要求。虽然这不像创建自定义成员资格/角色提供者那么干净,但我想知道这个解决方案是否可以被视为有效?

2 个答案:

答案 0 :(得分:0)

我建议使用NTLM检索当前的Windows域用户名,并使用它来预填充表单的用户名字段。用户输入密码并完成对应用程序的身份验证后,对活动目录运行LDAP查询。如果AD身份验证失败,请使用友好消息将其注销。

不幸的是,我需要太多的代码来发布这个答案。

答案 1 :(得分:0)

您可以通过执行以下

在成员资格提供程序上方实现您自己的图层来实现此目的
  1. 您需要检查用户是否在活动目录中进行了身份验证
  2. 之后,如果您的会员资格数据库和角色不存在,则需要添加此用户,并在以后使用它来控制使用角色和其他内容
  3. 之后,您可以开始为该用户设置身份验证cookie(如果用户有效)并将其添加到响应中。
  4. 每次经过身份验证的用户都会请求您不需要针对活动目录验证他的页面时,您只需为匿名用户执行此操作。
  5. 它做了很多工作,但你可以做到,毕竟你只需要阅读更多关于Asp.net会员资格